整理 git的使用--菜鸟篇git

整理下最近对git的使用心得和经验,大概用了三个月的时间,但是已经能感觉到git的方便,神马vss,snv都弱爆了!

git是一个分布式版本库的工具,用它的时候,首先要有一个自己的代码仓库,将远程的代码仓库复制到本地一份,然后怎么煎炸烹制都是反手之间

常用命令

git checkout -b new_branch_name 以当前分支为基础,新建一个分支

git checkout branch_name  切换到 branch_name 分支上 

git checkout -- abc.java   恢复对当前abc.java的修改

git diff 查看本地修改和之前commit的区别

git status 查看文件状态

git add 增加修改内容,用过 svn的同学应该不陌生

git commit 提交文件

git commit --amend 修改已经提交但是没有push的备注

git rebase -i HEAD~2 将之前的两次提交合并

git rebase mainbranch 更新当前branch代码,以rebase为基准,一般push前都需要此操作,以解决代码冲突

git log 查看本地日志

gitk 查看git 树

git branch -d branch_name //删除branch_name 分支

下面举出两个例子,列出不同情况下命令的组合

1.下载代码仓库到本地,有一个 bug需要解决,那么需要建立一个新的分支’bug_branch‘,然后修改,最后push到主干上,我会写出完整的过程,当然之后再有什么review神马的就不在本文讨论范围了

--->git checkout -b bug_branch // 新建分支

--->//然后就可以对你的代码进行修修改改了,ok,1,2,3,改好了吧,下一步

--->git diff //查看修改的内容,主要看看是否还需要修改

--->git status//查看修改了哪些文件

--->git add . //最后有一个点,意思为 增加所有修改内容

--->git status //查看所有文件是否已经成功改变状态

--->git commit -m "this is comment of this commit" //为本次提交写备注

--->//ok,到这里已经成功的提交到本地了,如果想查看本地当前分支的历史commit记录,可以执行git log命令查看,从打印出的log信息中,可以用git diff 查看两个版本之间差        异

--->这时,最好做一个 rebase操作,以免代码冲突,当然,如果你今天更新了代码,然后建立分支并commit,不rebase也行

---->repo sync ./ //请求最新代码到本git仓库

--->git checkout -b new_branch //新建的new_branch分支即为最新代码分支

--->git checkout bug_branch//切换到bug_branch

--->git rebase new_branch //以 new_branch为基础,rabase

--->//如果一切顺利,那么你的bug_branch就更新到了最新,就可以放心大胆的push了

--->push,,,,,如果push失败,我们公司会返回一个gerritid

2.比如之前的bug已经顺利push 了,结果没有通过代码review,有格式或者其他的问题,我们用的是 gerrit,修改后 push到第一次push返回的gerritid相关的路径中,这里只说git部分(注释 不加了,看第一部分)

--->git checkout bug_branch // 

--->//

--->git add .

--->git commit -m 'add commit comments"//

--->git rebase -i HEAD~2  // 将之前的两个commit 合并

--->改bug吧少年

--->第二个pick修改为squash

--->:wq 保存即可,当然也可以修改

--->至此,commit成功,rebase后可以push,push需要注意,不是一个新的push,而是和之前那个push有关的,具体的问你们老大

3.代码冲突了咋办?

做rebase冲突了咋办?ok,rebase的时候冲突了,相关的提示,哪些文件冲突了,打开文件后,会看到冲突部分(不截图了,真的很明显的表明了那几行冲突,不会看不到的,),修改完冲突后,push即可

--->git rebase new_branch

--->发现冲突提示,修改冲突文件,你可能想,,,

--->git rebase --continue //修改好了,想提交,如果命令执行成功就可以提交了,否则还需要继续修改

--->git rebase --abort     //不想修改了,返回执行rebase命令之前

--->ok,如果选择了上面的continue操作,并且成功了后,

--->git status //查看文件状态发现了有的文件状态不对,这时,你需要add命令

--->git add . //add命令后,不需要commiit了,因为,没有什么需要commit 的,即使commit,也会提示 nothing to commit

--->push吧少年

4.

你可能感兴趣的:(git)