1、我常用的代码提交流程
git stash
git stash的作用是将你的改动移进stash栈,可以多次存入,git stash list查看栈
git pull --rebase
这个是用rebase的方式同步云端的改动,常见的git pull相当于git fetch + git merge,merge方式会带来一些不可预见的问题,特别是多人团队,除非你想手动解,
git stash pop
拉下来了代码,当然是要移出你的change,一般都是git stash pop,默认会拉出栈顶的最近一次记录,也可以使用git stash pop stash@{id}移出指定id的记录,通常不要用git stash apply,容易发生错乱;
移出后,如果有冲突,会有标注,你需要逐个去审核采用current change还是incoming change,选好后就可以下一步了
(git status + git add ** ) / git gui
这一步有两种方式:
1、git status查看改动的文件的staged情况,然后用git add和git reset操作;
2、git gui推荐使用,可以看到你改动的地方,然后依据需要添加;
git commit
添加好了stage,就可以建立本地提交记录了,这个时候就有了很多的不同的地方,你可以git commit -m"*** ",星号填写提交描述,也可以配置message模版-见2,和配置message默认编辑器-见3,
还有amend提交和squash提交,适应不同场景,代码审查下就需要每笔分开,
git push
建好了本地的提交记录,就需要同步到云端了,
格式:git push <remote 名字> <本地分支的名字> : <远程库的名字>
git push origin HEAD:refs/for/***
git push 推送
origin : 是远程库的名字
*** :就是填你的分支名
HEAD: 是一个特别的指针,它是一个指向你正在工作的本地分支的指针,可以把它当做本地分支的别名,git这样就可以知道你工作在哪个分支
refs/for :意义在于我们提交代码到服务器之后是需要经过code review 之后才能进行merge的 refs/heads 不需要---这些是gerrit的规则; 普通git使用git push origin HEAD:&&&就可以,需要注意本地分支需要与云端分支对其
异常处理-git reset
假如提交错误,切记不要多次提交后,再push同步,这个时候要先查看报错信息,处理错误,然后git log查看本地提交记录commitHash,复制下来云端最后一次提交记录的commitHash,然后使用git reset --soft ** ,将本地提交记录恢复到*
2、 配置message模版
git config commit.template ../config/aaa.txt
将当前分支的message设置为指定路径下的某个文件
git config --global commit.template ../config/aaa.txt
将全局的提交模版都设置为指定路径下的某个文件
3、配置message默认编辑器
git config --global core.editor “‘../config/sublime text.exe’ -w”
配置全局message编辑器为指定路径下的***
如果不设置,默认会是git自带vim编辑器
4、查看指定提交id的代码
git reset --hard **
git log查看本地提交记录,复制下来想要查看的提交记录的id,然后使用git reset --hard ** ,将本地代码恢复到***
5、查看git配置
git config --list
如果需要查看git配置,git config --list就可以查看当前分支的配置,然后输入cd回车返回顶级目录,然后git config --list就可以查看全局配置了