平时也多是使用 IDEA 自带的 Git 插件,简单又方便,不需要理解 Git 背后的技术,最近突然让我在 VsCode 上更新提交代码,发现又需要学习 VsCode 的插件使用,思量一番后,决定好好学习一下 Git 命令的使用。由于工作需要,对于 Git 的使用又有了新的要求,之前简单的 push、pull 命令已经无法满足平常的使用,因此专门找了个网站实操了一遍,同时将相关内容整理成文档,供后续翻看。
Git基本操作
以下操作来源:learngitbranching.js.org/?locale=zh_…
commit提交
git commit 复制代码
Git 仓库中的提交记录保存的是你的目录下所有文件的快照,就像是把整个目录复制,然后再粘贴一样,但比复制粘贴优雅许多!
有时你提交过代码之后,发现一个地方改错了,你下次提交时不想保留上一次的记录;或者你上一次的 commit message 的描述有误,这时候你可以使用接下来的这个命令:git commit --amend。
查看如下案例:
$ git checkout master $ git cherry-pick C2 $ git commit --amend $ git cherry-pick C3 复制代码
branch创建分支
git branch newBranchName 复制代码
创建分支后,然后切换到当前新分支下。
git checkout newBranchName 复制代码
如果你想创建一个新的分支同时切换到新创建的分支的话,可以通过 git checkout -b
来实现。
git checkout -b newBranchName 复制代码
查看远程分支
git branch -r 复制代码
拉取远程分支并创建本地分支
git checkout -b 本地分支名x origin/远程分支名x 复制代码
使用该方式会在本地新建分支x,并自动切换到该本地分支x。采用此种方法建立的本地分支会和远程分支建立映射关系。
git fetch origin 远程分支名x:本地分支名x 复制代码
使用该方式会在本地新建分支x,但是不会自动切换到该本地分支x,需要手动 checkout。采用此种方法建立的本地分支不会和远程分支建立映射关系。
checkout检出/切换分支
将指定版本/tag/分支的代码检出,如果当前存在未提交的代码禁止做此操作。
merge合并
合并两个分支,存在冲突时,能自动合并的会自动合并,不能自动合并的会产生冲突,需要人工处 理。解决冲突的时候,只需要处理冲突的文件,当前工作目录会存在大量提交的文件,不要去还原这些文件,不要去还原这些文件,不要去还原这些文件。
// 创建bugFix新分支,并切换到该分支 git checkout -b bugFix; //加入做了修改,然后提交 git commit //切换到master分支,然后做修改并提交 git checkout master git commit //将bugFix分支的内容合并到master git merge bugFix 复制代码
分离Head
目标: 从 bugFix
分支中分离出 HEAD 并让其指向一个提交记录。
执行下述命令:
git checkout master git checkout C4 复制代码