Git操作常用概念和命令

1、相关概念

   [1]git 远程仓库。是代码服务服务器中的一个地址。使用git remote –v可以查看远程库地址

         

C:\MyProjects\gits\android>git remote -v

origin  ssh://[email protected]:29418/Wireless/android (fetch)

origin  ssh://[email protected]:29418/Wireless/android (push)

    

      origin  是远程库的别名。

   [2] git 本地仓库。是本地代码的存储的仓储。可以使用 git init初始化一个本地仓库,也可以使用git clone 从服务端复制一个仓库到本地。

      git clone ssh://[email protected]:29418/Wireless/android

      

      ssh:// 是通信协议, [email protected] 是在git 服务器上的用户名,29418 是端口号,Wireless/android 是库名

 

  [3] 本地Index 库。是本地暂存的代码库,需要提交到本地仓库的代码需要首先添加到Index库。

 

  [4] 工作空间。变更信息都存在该库里面。

 

  [5]  stash.可以理解为工作空间的一部分,是工作空间中的保存的一次变更。

 Git操作常用概念和命令_第1张图片

                          

 

 

2、相关命令

   [1]从服务端拉取代码: git pull 与git pull –rebase

    git pull是简单的拉去服务端的代码并与本地代码合并。

     git pull –rebase拉取代码后,并将远程最新提交点作为本地代码提交的基点,再进行合并。 【推荐方式】

 

    

    

     从上述图片中看一下git pull的作用。

[1] 在14:33 zfzeng提交了6.6视觉问题的代码,之后 hejin和xiajw两位同事都在这个提交之后工作,他们的起始代码状态是一致的,代码基点(base)都是6.6视觉问题.

     [2] 在14:35 hejin完成了一次开发,提交酒店日志代码merge到服务端。期间,没有其他同事提交新代码。

因此hejin提交是在本地base之上,也是服务端最新代码之上做的提交。提交之后,服务端的最新提交变成酒店日志代码merge,而不是之前的6.6视觉问题。

     [3] 在14:41xiajw提交了Flight单程推往返,在他本地base仍然是6.6视觉问题,但是由于服务端有的新的提交酒店日志代码merge,因此,提交到服务端之后,服务器做了合并工作,产生了Merge”Fligt 单程推往返” into rel/6/7

       

     从上图看到。出现了两条分支线合并的情况。这种方式可以保持单个分支较为清晰的历史记录。即:Flight单程推往返 是在6.6视觉问题基础上开发的。

弊端:出现两条分支线,比较复杂,如果有更多用户,分支情况更加复杂

 

git pull –rebase的作用

同样可以拉去到服务器最新的代码。如果xiajw先做git pull –rebase,就会保持分支线是直线。即将酒店日志代码merge拉去到本地,并将其作为Flight单程推往返的基点。变成如下的路径:

 

2 Flight单程推往返

1酒店日志代码merge

    0 6.6视觉问题

 

git pull –rebase 要求workspace和index是干净的。

 

3、工作流程:

 3.1  git checkout –b rel/6.7 origin/rel/6.7

 3.2 git status

 3.3  git add ./file_pathes 或者 git rm file_pathes

 3.4  git commit –m “comment”

 3.5 git stash

 3.6  git pull –rebase

 3.7 如果有冲突,则需要merge冲突

 3.8 如果解决了所有冲突,运行下面命令  git rebase –continue.

 3.9 push代码到远程分支,或则指定分支。git push或git push origin rel/6.7:refs/for/rel/6.7

 

你可能感兴趣的:(git)