git经验

来源:互联网 发布:非诚勿扰程序员不洗脸 编辑:程序博客网 时间:2024/05/17 21:37
下面是个人git使用过程中的经验,谨记录,以防忘记

一. 一份代码应对多个项目
1. 多个项目分支,比如a, b等等,只需要下载一份代码。然后创建多个分支
甚至可以一个bug,一个需求创建一个分支,操作如下

假如你在a分支上
git stash -- 隐藏你当前分支下的修改
git checkout -b bug539193 origin/rom/xxx, 后面的origin/rom/xxx是远程分支名;因为待会我们把代码push到xxx分支上,也就是基于远程分支来创建分支
修改完毕后,提交代码,push代码
git checkout a 回到原来的a分支
git stash pop 恢复之前的隐藏代码,继续a上面的修改

这样,我们只有一份代码,但是可以同时修改很多bug,互不影响,非常灵活。

二. 不同分支之间代码合并
1. 首先尝试在gerrit 网页上cherry pick to产生一份新的提交,如果成功就ok了;如果失败,那就在本地来cherry-pick
比如想把a提交cherry pick到b上面去,由于在本地只有一份代码
那么操作如下:

a. 在a分支上 git log 看到你想cherry pick的那次提交,如下:
commit f3f500f0e14fb142e060b73cee54c9a723a500a9
xxxx

把上面的f3f500f0e14fb142e060b73cee54c9a723a500a9复制下来

b. git checkout b切换到b分支
git cherry-pick f3f500f0e14fb142e060b73cee54c9a723a500a9
把a上面f3f500f0e14fb142e060b73cee54c9a723a500a9这次提交弄到b分支上,push即可。

c. 如果cherry-pick因为冲突导致失败,就按照如下步骤
1. 修改冲突文件,git 会产生一些会导致代码编译不过的修改,删除即可
2. 项目右击->TortoiseGit->Resolve
3. push即可

也许大家都有自己的方法提交代码,但是这种方法应该是git提倡的,非常灵活的方式;使用多了,就能更深刻的理解git的工作原理。

三. 同步代码
如果本地没有修改,那么直接git pull --rebase就可以了
如果本地有修改,那么
git stash 隐藏修改文件
git pull --rebase更新
git stash pop显示之前隐藏的文件

四. 快速清除项目里面的修改文件
1. git clean -dxf 清理所有新增的文件
2. git reset --hard清理所有修改的文件
3. git pull --rebase更新代码至最新,一般经过这3步,代码肯定是最新的。
4. git checkout xxxx.java可以恢复某一个修改的文件
0 0
原创粉丝点击