在使用git时,用了repo,Windows下开发,使用的是Cygwin工具,这个比git的bash更好使用。使用git一定要明白,add,commit操作都不会影像远程代码仓库,只有push了才会将代码推送到远程仓库,比svn多了一步;
1. mkdir gitlearn
2.cd gitlearn
3.repo init -ussh://xxx -m xxx.xml 拉取远程代码
这个其实就相当于git的这两部操作:
git init
git clone git@github.com:wufengxyz/hellogit.git 这个是我在github上的一个仓库,这个网站也提供学习git的指南
4.repo start xxx 创建分支,在project工程上,可以是多个工程,这些工程是自己将要修改的,在Git使用中一定要开分支,不然冲突了就无法解决,
这个相当与git branch XXX(分支名 ) git checkout XXX,创建分支,切换到这个分支(repo可以操作多个工程、模块,而git是单工程的)
5.进入一个开了分支的工程,git branch -a,查看是否在分支上
6.git status,一定要多用次命令,查看修改等状态
7.开始在分支上修改,添加操作等等操作
8.修改过了代码,接下来使用
git add .
git commit -m "bug修复"
9.接下来可以同步远程代码了
repo sync xxx(工程名)
10.现在远程代码已经被down下来了,相信大家都只要会有冲突出现可能
有冲突修改,修改后使用git rebase --continue这样就相当于把这些修改合并到了上次冲突的提交中了
11.repo upload 这步操作是将代码推送到远程代码审核仓库,我们的leader会review我们的代码,通过了这次开发任务完成,不通过继续修改
12.review不通过要执行以下操作,这里要注意,我们的代码已经提交到远程仓库了,这是跟git rebase操作的一个区别
修改不通过的代码......修改完成后,git add .,git commit -m "xxx"完成一次commit了,接下来使用
git rebase -i HEAD~2
弹出一个界面
pick 0b92779 Test commit two
pick 9d80074 rebase test
合并两次pick,将第二个pick改为s,如下
pick 0b92779 Test commit two
s 9d80074 rebase test
esc :wq保存变更
弹出一个界面,删除后面一个Change-Id(dd操作,删除整行)
esc:wq保存变更
然后repo upload上传修改后的代码就完成了所有提交过程了,完全通过后就进行一次repo sync同步一下远程仓库代码,记住要经常用git status,或者repo status命令,每次做修改前一定要有第4步操作。
接下来介绍如果git完全不能提交使用了情况下的解决办法,经常因为没开分支造成;
把自己修改后的代码先备份出来,接下来repo sync把远程代码库中最新的代码同步下来,然后用备份的代码覆盖这些最新代码,如此操作后使用git status就会发现自己修改了的代码,然后在IDE工程中看与远程最新版本代码有什么不同,把远程代码中有,而自己当前代码中没有的加上,然后进行正常的提交过程就OK了,为什么这样大家想想就明白了相当于在最新版本代码上做了修改。
这些只是Git中最基本的操作流程