Git快速入门

简介: Git是分布式版本控制系统(distributed version control system,简称DVCS),分为本地仓库和远程仓库

Git

1. Git简介

Git是分布式版本控制系统(distributed version control system,简称DVCS),分为本地仓库和远程仓库


2. Git工作流程


clone与pull的区别

  1. clone操作是一个从无到有的克隆操作(只执行一次)。因此不需要本地进行git init初始化
  2. git pull是拉取远程分支更新到本地仓库的操作(要执行很多次)。事实上,git pull是相当于从远程仓库获取最新版本,然后再与本地分支merge(合并)。

git init把当前目录变成Git可以管理的仓库

git add把文件添加到仓库

git add .添加文件下所有文件及文件夹

git commit -m "comment"把文件提交到仓库

为什么Git添加文件需要addcommit一共两步呢?因为commit可以一次提交很多文件,所以你可以多次add不同的文件,比如:

$ git add file1.txt

$ git add file2.txt file3.txt

$ git commit -m "add 3 files."

git status查看仓库当前的状态

git diff查看修改之后的不同(difference)

版本回退

穿梭前,用git log --pretty=oneline可以查看提交历史,以便确定要回退到哪个版本。

HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id

要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

工作区和版本库

工作区git init把当前目录变成工作区

版本库:工作区的隐藏目录.git,是Git的版本库。

Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD


第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;

第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

撤销修改

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git restore <file>

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git restore --staged <file>,就回到了场景1,第二步按场景1操作。

场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。

删除文件

rm file删除文件

现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令git rm file删掉,并且git commit

另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:"git restore <file>

添加远程库

第1步:创建SSH Key。在用户主目录下(cd ~然后pwd,即可看到用户主目录路径),看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsaid_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:

ssh-keygen -t rsa -C "youremail@example.com"

你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。

如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsaid_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:

然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容

关联&提交远程库

要关联一个远程库,使用命令git remote add fp git@github.com:ggbondd/fucking-physical.git

关联一个远程库时必须给远程库指定一个名字,origin是默认习惯命名;

关联后,使用命令git push -u origin master第一次推送master分支的所有内容;

此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;

解绑远程库

查看本地已经关联的远程库:git remote -v

git remote remove origin

克隆远程库

要克隆一个仓库,首先必须知道仓库的地址,然后使用git clone命令克隆。

Git支持多种协议,包括https,但ssh协议速度最快。

分支管理

查看分支:git branch

查看项目的分支们(包括本地和远程):git branch -a

删除本地分支:git branch -d <name>

删除远程分支:git push origin --delete <Name>

创建分支:git branch <name>

切换分支:git switch <name>

创建+切换分支:git switch -c <name>

合并某分支到当前分支:git merge <name>

重命名分支git branch -M <name>

目录
相关文章
|
2月前
|
开发工具 git 索引
【git】入门
【git】入门
36 2
|
4月前
|
Java Shell 开发工具
Git快速入门+常用指令
Git快速入门+常用指令
34 0
|
4月前
|
Shell Linux 开发工具
Git入门(windows系统)
Git入门(windows系统)
45 1
|
1天前
|
开发工具 git 开发者
Git入门:轻松掌握版本控制的艺术
【5月更文挑战第13天】Git是流行的版本控制系统,适合各种规模的项目。本文引导读者入门Git,学习版本控制艺术。内容涵盖Git简介、安装配置、基础操作(如初始化、添加文件、提交、查看状态和历史)、分支管理、协作开发(克隆、推送、拉取)及高级用法,如标签管理、子模块和版本比较。遵循最佳实践,如频繁提交、有意义的提交信息和合理分支管理,可提升开发效率。
|
18天前
|
jenkins 持续交付 开发工具
Jenkins 快速入门 (含Jenkins + Docker + Git 简单的自动化实操)(下)
Jenkins 快速入门 (含Jenkins + Docker + Git 简单的自动化实操)
|
18天前
|
jenkins Java 持续交付
Jenkins 快速入门 (含Jenkins + Docker + Git 简单的自动化实操)(上)
Jenkins 快速入门 (含Jenkins + Docker + Git 简单的自动化实操)
|
28天前
|
数据可视化 开发工具 git
Git代码版本管理入门
Git代码版本管理入门
|
2月前
|
程序员 开发工具 git
好程序员Git入门到精通教程
本课程主要通过命令行和idea来介绍Git的安装、仓库创建、工作流、远程仓库、克隆仓库、标签管理和分支管理等Git的主要内容。 另外关于GitHub的使用介绍也有完整的说明和使用,接轨生产环境使用方式。
11 1
好程序员Git入门到精通教程
|
2月前
|
存储 持续交付 开发工具
Git操作入门
Git是一个的开源分布式版本控制系统,它已经被广泛应用于软件开发、文档管理、代码托管等领域,成为当今最流行的版本控制系统之一。Git通过高效地管理文件的变化,使得团队协作更加高效,错误率更低。本文将介绍Git的工作原理、基本命令和常见用法等内容。
23 0
Git操作入门
|
3月前
|
缓存 Java 开发工具
[Git]入门及其常用命令
创作本篇文章的初衷,是为了方便大家回顾git常用命令和使用细节,而不用查阅大量资源寻找。同时记录了一些特殊需求,如:pull 部分代码、删除日志。 如果文中阐述不全或不对的,多多交流。
38 0
[Git]入门及其常用命令