Git分支操作

1.在gitbash中输入git branch,可以查看分支:

 

 

 2.查看远程端的分支命令:git branch -a

  

 

 3.在本地如何创建分支,git checkout -b branch1

 

 4.再次使用git branch查看,本地有两个分支了:

 

 5.使用git branch -a,发现远程端并没有branch1分支

 

 

 6.如何将本地分支推送到远程呢?

   <1>.使用git status,发现当前在branch1分支

   

 <2>. 编辑原来的test.txt文件,修改原来文件并保存:

 <3>.使用git add 追加文件:git add test.txt

 <4>.git commit -m "提交到branch1上的内容"

 <5>.git push ,提示错误:

      

 

 <6>.使用git push --set-upstream origin branch1,即可推送到远程github上

 <7>.结果发现github网站上branch1下有多个文件:

   

 

  解决办法,清理缓存,git中清理缓存的命令是:

   git rm -r -f --cached ./ (删除缓存)

  重新创建分支,修改文件,推送:

  git cheout -b "branch5"

  git statsus

  vim  test.txt,修改test文件并保存退出

  git add test.txt

  git commit -m "推送文件到branch5分支上"

  git push --set-upstream origin branch5

  进入github网站上,查看branch5下面的文件:

 

 发现只推送了test.txt文件了

 

<8>.删除分支:

     命令:git branch -d 分支名称(branch1),不能再当前工作分支下删除

     如果在当前工作分支下删除,会提示错误:不能删除分支,必须要切换分支

     切换分支命令:git checkout master,出现错误:

   

 

     通过错误提示可知,是由于一些untracked working tree files引起的问题。所以只要解决了这些untracked的文件就能解决这个问题

     在本地仓库目录下执行命令:git clean -d -fx 即可

  可能很多人都不明白-d,-fx到底是啥意思,其实git clean -d -fx表示:删除 一些 没有 git add 的 文件;

     git clean 参数 

    -n 显示将要删除的文件和目录;

    -x -----删除忽略文件已经对git来说不识别的文件

    -d -----删除未被添加到git的路径中的文件

    -f -----强制运行

    git clean -n

    git clean -df

    git clean -f
    再次切换分支:git checkout master,发现分支切换成功:

   

 

   删除分支branch1: git branch -d brach1

   

 

   分支删除成功

   再次使用git branch,查看本地分支已被删除:

  

 

  查看远程分支:git branch -a,发现远程分支仍然存在

 

 

 说明刚刚操作只是删除了本地分支。

 如何删除远程分支呢?git 命令:git branch -r -d origin/branch1(分支名称)

 

 发现确实是删除了。但是进入github中发现branch1分支并没有删除:

 

 

为什么分支没有删除成功呢?原来是git 命令问题:git push origin :branch1(分支名称),origin后面有空格

 

 发现确实是删除了,在进入github网站中,查看分支,发现branch1被删除了

 

 

   以上就是删除分支的操作

  <9>.合并分支操作:

    1.创建分支:git checkout -b mergedemo

    

 

    2.修改test.txt文件,并保存:vim test.txt

    3.cat test.txt,发现修改成功

    4.git add test.txt

    5.git commit -m "增加合并内容"

    6. git push --set-upstream origin mergedemo,推送到mergedemo分支,提示推送成功

    7.切换到master分支,git checkout master,提示错误:

     error: The following untracked working tree files would be overwritten by checkout:test2.txt

    Please move or remove them before you switch branches.

     Aborting

     8.使用git clean -d -fx,提示删除test2.txt文化

     9.再次使用git checkout master,切换到master分支;提示切换成功,当前在master分支:

      

 

   10.查看master下的文件,发现test.txt并没有修改;

   11.使用合并分支命令:git merge mergedemo(需要合并的分支)

   12.再次查看test.txt,发现文件被修改了:

 

   以上就是合并分支的操作

<10>.解决合并分支的冲突问题,多人合作的时候,存在多人同时修改一个文件的情况;实际工作中需要将其他分支代码合并到master分支上。

     在master分支使用git merge mergedemo时,出现了冲突:

   

 

  查看merge的文件内容:cat test.txt

  

 

 出现了这种情况,意味着发生冲突了,此时,需要修改test.txt文件,去掉中间的HEAD,===号,以及下面的>号,

  

 

 重新追踪文件:git add test.txt

                          git commit -m "解决合并分支冲突问题"

                          git push

     

 

 再次查看test.txt文件,发现master分支已经合并成功了:

 

 进入github网站,查看master下的分支内容,发现合并成功了:

 

 

 

 

   

posted @ 2019-09-23 23:44  maxwell11  阅读(267)  评论(0编辑  收藏  举报