Git入门
本文最后更新于:2024年8月27日 上午
初始化本地仓库
创建一个文件目录
1
mkdir 7.8study
进入这个文件目录
1
cd 7.8study
初始化Git本地仓库
1
git init
在本地仓库里新建一个myfile.txt文件,右键新建就行
在文件中写入一段文字,也就是对文件进行修改
1
连猴子都懂的Git命令
提交修改
先将文件添加到Git控制系统中来
1
git add myfile.txt
提交到Git系统中,并添加信息,方便以后查看每一步干了些什么
1
git commit -m "第一次提交"
结果
1
2
3[master (root-commit) 268c96e] 第一次提交
1 file changed, 1 insertion(+)
create mode 100644 myfile.txt目前历史是这样的
创建分支
由于我们有时候需要多人协同开发,每个组都有自己的分支,这样可以提升开发效律。
创建名为dev1的分支
1
git branch dev1
查看所有分支
1
git branch
结果
1
2dev1
* master目前历史是这样的
切换分支
如果想要在新创建的分支上提交,我们需要切换到那个分支上去。在切换到dev1分支的状态下提交,历史记录会被记录到dev1分支。
切换到dev1分支上去
1
git checkout dev1
在checkout命令指定 -b选项执行,可以创建分支dev2并进行切换
1
git checkout -b dev2
目前的历史记录是这样的
在dev1上给myfile.txt文件添加add的使用说明
1
2连猴子都懂的Git命令
add 把变更录入到索引中然后添加和提交
1
2git add myfile.txt
git commit -m "添加add的说明"目前的历史记录是这样的
合并分支
向master分支合并dev1分支,这里我们切换到dev1分支,打开myfile.txt文件,可以看到add的说明。但是我们现在切回到master分支,会发现并没有add说明,现在假设我们已近完成了开发,就要把dev1合并到master上,这样我们切到master时,文件的进度就和dev1上的一样了,也就是我们也能看见add说明了。
先回到master上
1
git checkout master
在主分支上合并dev1分支
1
git merge dev1
结果
1
2
3
4Updating 268c96e..eaec4a7
Fast-forward
myfile.txt | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)master分支指向的提交移动到和issue1同样的位置,这个是fast-forward(快进)合并
取消合并
1
git reset --hard HEAD~
删除分支
既然dev1分支的内容已经顺利地合并到master分支了,现在可以将其删除了。
删除dev1分支
1
git branch -d dev1
确认一下,查看分支列表
1
git branch
多个分支
有时候我们需要多个分支来加快进度,不过最后合并的时候比较容量冲突。先新创建dev2,dev3分支,并切换到dev2分支。
命令行如下
1
2
3
4
5
6
7
8git branch dev2
git branch dev3
git checkout dev2
Switched to branch 'dev2'
git branch
* dev2
dev3
master在dev2分支的myfile.txt添加commit命令的说明后提交
1
2
3连猴子都懂的Git命令
add 把变更录入到索引中
commit 记录索引的状态1
2git add myfile.txt
git commit -m "添加commit的说明"切换到dev3分支,给myfile.txt添加pull命令的说明后提交
1
2
3
4
5
6
7
8git checkout dev3
连猴子都懂的Git命令
add 把变更录入到索引中
pull 取得远端数据库的内容
git add myfile.txt
git commit -m "添加pull的说明"
这样,添加commit的说明的操作,和添加pull的说明的操作就并行进行了。
解决冲突
把dev2分支和dev3分支的修改合并到master。先切换到master分支后,与dev2分支合并。
1 |
|
执行fast-forward(快进)合并。
接着合并dev3分支。
1 |
|
自动合并失败。由于在同一行进行了修改,所以产生了冲突。这时myfile.txt的内容如下:
1 |
|
在发生冲突的地方,Git生成了内容的差异。请做以下修改:
1 |
|
修改冲突的部分,重新提交。
1 |
|
历史记录如下图所示。因为在这次合并中修改了冲突部分,所以会重新创建合并修改的提交记录。这样,master的HEAD就移动到这里了。这种合并不是fast-forward合并,而是non fast-forward合并。
个人常用命令
查看远端仓库地址
1 |
|
撤回add操作
1 |
|
拉取远端仓库后默认只有main分支,在本地新建分支并关联,第二种默认分支名为远端分支
1 |
|
使用第一种方法时,如果本地分支名和远端不一样,会出现The upstream branch of your current branch does not match the name of your current branch
,分支尽量名称保持一致
查看本地分支和远程分支关联情况
1 |
|
关联到远端分支
强制删除分支(在桥上时不要炸桥)
1 |
|
在远端删除分支后,本地使用git branch -a
未能及时更新
1 |
|
恢复工作区中的文件到最近的提交状态(即丢弃对文件的所有未提交更改)
1 |
|
显示分支提交树
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!