合作开发代码时的git操作流程

文章目录

    • git操作
        • 常用的git命令
          • 远程仓库相关命令
          • 分支(branch)操作相关命令
        • 主要流程及操作
        • 冲突解决

git操作

常用的git命令

远程仓库相关命令
  1. 克隆仓库:$ git clone git://github.com/jquery/jquery.git
  2. 查看远程仓库:$ git remote -v
  3. 添加远程仓库:$ git remote add [name]
  4. 删除远程仓库:$ git remote rm [name]
  5. 修改远程仓库:$ git remote set-url --push [name]
  6. 拉取远程仓库:$ git pull origin [分支]
  7. 推送到远程仓库:$ git push origin [分支]
分支(branch)操作相关命令
  1. 查看本地分支:$ git branch
  2. 查看远程分支:$ git branch -r
  3. 创建本地分支:$ git branch [分支名] ----注意新分支创建后不会自动切换为当前分支
  4. 切换分支:$ git checkout [分支名]
  5. 创建新分支并立即切换到新分支:$ git checkout -b [分支名]
  6. 删除分支:$ git branch -d [分支名] ---- -d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项
  7. 合并分支:$ git merge [分支名] ----将名称为[分支名]的分支与当前分支合并
  8. 创建远程分支(本地分支push到远程):$ git push origin [分支名]
  9. 删除远程分支:$ git push origin :heads/[name] 或 $ git push origin :[name]

主要流程及操作

  1. 首先,开始创建新项目需要在本地建立文件夹(eg.文件名为test),进入文件夹打开终端,克隆远程仓库到本地。

    git branch 											  #查看当前分支,此时只有一个主分支master
    git clone git@192.168.1.204:cube/public.git  		  #克隆远程仓库
    git checkout -b test 								 # 创建并切换到分支test,此时本地有分支test和master但是远程没有test分支
    git pull origin master                               # 从远程主分支拉取到本地test分支(当前是test分支)
    git push origin test                                  #此时从本地test分支推送到远程test分支(当push时,远程仓库会自动创建test)
    

    注意:

    • 这个时候,本地两个分支master和test,与远程的两个分支master和test对应。每次开发是需要保持本地的两个分支和远程的 test一致,只有远程的master才会不一样。
    • 在git操作之前要检查当前的项目的远程仓库配置(git remote -v),如果远程仓库信息有误,则删除本地仓库配置,并且设置相关地址(git remote rm origingit remote add origin [email protected]:cube/public.git)。
  2. 然后,在test分支下对拉取下来的代码进行修改开发,开发完毕后在test分支下提交到本地。再进入本地的master分支进行合并(merge),随后在本地的master分支下将合并完成的代码推送到远程master和远程test(从本地的master推到远程的master和远程的test是都可以的,而从本地的test分支就不可以推到远程)。

    注:在对文件进行修改前,必须先从远程拉取,避免版本号不同的冲突。

    git branch  test  									#进入本地自己的分支test分支
    git pull  origin  master                            #从远程master拉取到本地test分支(pull拉取都是指的从远程仓库拉取)
    ...............										          #这里是对拉取下来的文件进行开发,修改。。。
    git add function.py									#将修改的文件添加到本地暂存区
    git commit -m  "版本注释"							#提交修改,此时本地的test分支就发生修改,得到了新的版本。这个时候下面就需要合并到本地的master,并push到远程的master和test。如下,
    git checkout master                                # 切换到本地的master分支
    git  merge  test                                  #  将本地的test分支合并到本地的master分支
    git push origin master                            #  将本地的master分支推送到远程master分支
    git push origin test                               # 将本地的master分支推送到远程test分支
    

    注意:删除的文件也需要git add 、git commit 一下,否则不会被删掉。

  3. 这样就完成了,合作开发的基本流程。在以后的开发中就重复以上2的操作。

冲突解决

什么情况下容易出现冲突呢?一般就是多个开发者对同一个文件做了修改,同行修改(出现冲突),不同行git 很智能的做了自动合并不需要人为修改,一个改了push 上去,另一个由于在同一个文件修改,所以就会出现 push 不上去,这样就需要人为解决(团队之间要商量)把那些有用的代码梳理好在提交,如果不商量很容易把别人的代码给丢弃了(不过git也可以通过日志找回只要开发者在本地提交了)。
场景:早上来 a ,b两个开发人员都从远程 拉取了最新的代码,然后 a 在第一行修改 git add git commit git push,b 也在第一行做了操作 这时候 git add git commit git push(这是就会提示让你拉取最新的版本已经不一致了 git pull)这时候就会提示你要你解决冲突。
如何解决?

  1. 可以用git status查看哪些文件发生的冲突。
  2. 任何包含未解决冲突的文件都会以未合并(unmerged)的状态列出。Git 会在有冲突的文件里加入标准的冲突解决标记,可以通过它们来手工定位并解决这些冲突。
  3. 打开文件,手动修改去掉那些特殊符号,手动解决冲突后再提交。

你可能感兴趣的:(linux)