ubuntu使用git时常碰见的问题详解

1、需要将master分支上的某次提交快速的合入到master-dev分支上?

      Step1:git checkout master-dev (切换至master-dev分支)

      Step2:git checkout .(保证本地环境干净)

      Step3:git cherry-pick xxxxxx(在master分支上已经提交成功记录的commit-id)

      Step4:如果有冲突,则先解决冲突,可以通过git status 查看“双方修改的---文件”(搜索"<<<<","====",">>>"都可以找到冲突的地方) 如果冲突太多,也可以手动用meld diff工具进行merge.

      Step5:解决完冲突之后,git add xxxx(文件名)

      Step6:git cherry-pick continue(继续提交,这一步相当于git comm xxxx)

      Step7:git push origin HEAD:refs/for/master-dev(将本次修改push到远程master-dev仓库)


2、如何回退某个文件的修改?

      git reset xxxxxxxxx(commit-id)  ssssss(文件名称)

      如:git reset 152a1dc8a4c6b525d4ba86ca7f2af05d2cc252c2 MyActivity.java


3、如何在git里面打tag(常用于发布版本时,标记这次提交)?

      如:要发布一个正式版本时,可以如下这个打tag

      新增tag: git tag -a v1.2.0 -m "教育版v01"
      推送tag到服务器: git push --tags
      删除远程tag:  git push origin --delete tag v1.2.0
      删除本地tag:  git tag -d 
v1.2.0


4、有时会碰到提交失败的情况,大部分可能是本地代码要么比服务器早,要么比服务器晚.如何解决?

       方法一:

       Step1:git reset --soft xxxxxx (先回退到一个比较旧的节点)

       Step2:git pull

       Step3:git commit xxxxxx

       Step4:git push origin HEAD:refs/for/master(push到远程master仓库)

       方法二:

       Step1:git stash //将当前修改保存到内存(只包含修改的部分)

       Step2:git stash list //列出当前内存的修改

       Step3:git stash pop //将当前内存中的棧顶合入当前文件系统.

       Step4:git pull --rebase

       Step5:git commit xxxxxx

       Step6:git push origin HEAD:refs/for/master


你可能感兴趣的:(开发工具)