1.推荐一款git的可视化工具
gitKraken,这款工具操作比较方便,UI也是我喜欢的风格,对没有太多git使用经验的新手比较友好,学习成本相对较低。尤其喜欢的一点就是它的分支和提交非常清晰。
gitKraken.png
2.git进阶命令
1.pull
取回远程主机某个分支的更新,再与本地的指定分支合并,pull = fetch + merge
//快进式合并
git pull(fast-forward if possible)
git pull(fast-forward only)
//rebase
git pull(rebase)
//从远程分支获取最新内容,但是不合并。
git fetch
2.merge和rebase
合并分支,将当前分支移动到其他分支
//两个词的字面意思: into 就是进入;到...里面 onto 移到...上面
使用场景:本地master分支开发,远程master分支有新提交,需要合并远程分支到本地分支继续开发。
原始分支:
A---B---C remotes/origin/master
/
D---E---F---G master(本地)
//将另一先提交的的分支合并到自己分支,然后继续开发,两条线
merge 分支1 into 分支2
A---B---C remotes/origin/master
/ \
D---E---F---G---H master(本地)
//rebase到另一先提交的分支上继续开发,一条线
rebase 分支1 onto 分支2
remotes/origin/master
|
D---E---A---B---C---F'---G' master(本地)
3.stash
保存当前进度的代码
//保存当前工作进度,会把暂存区和工作区的改动保存起来。
git stash
//显示保存进度的列表
git stash list
//恢复最新的进度到工作区
git stash pop
//除了不删除恢复的进度之外,其余和git stash pop 命令一样
git stash apply
//删除一个存储的进度。
git stash drop
//删除所有存储的进度。
git stash clear
4.push
将代码提交到远程仓库
//将本地分支内容提交到远程分支
git push
5.cherrypick commit
将其他分支的某个提交合并到当前分支
a--b--c--d--e--f master
\
g--h--i--j test
当前在test分支,现在需要master的e提交的功能,在e 执行cherryPick commit
a--b--c--d--e--f
\
g--h--i--j--e<
6.reset commit
将一个分支的末端指向另一个提交。这可以用来移除当前分支的一些提交,这两个提交之后会被删除。
soft 缓存区和工作目录都不会被改变
mixed 默认选项。缓存区和你指定的提交同步,但工作目录不受影响(只将缓存区的移除,工作目录不变)
结果:工作目录不变,需要
Hard 缓存区和工作目录都同步到你指定的提交(二者都移除)
结果:在指定commit处执行reset hard,该处commit之后的所有提交被删除,没有记录
7.revert commit
在指定的某个提交上revert commit,他会做一个新的commit(去掉revert的commit)
如图:在c commit执行revert,结果会在F之后提交一个新的commit,该commit不包含c commit的内容
A---B---C---F remotes/origin/master A---B---C---F---new(没有c的提交)
/ revert commit c --> /
D---E master(本地) D---E
8.checkout
1.切换分支 2.用于从历史提交(或者 stage 缓存)中拷贝文件到工作目录
参考:
最后、欢迎关注我的小订阅号
关注公众号,后台回复 "福利" 二字,分享一些不错的编程视频。
wechat.jpg
网友评论