我在团队协作中基本上都会使用到的Git方法

文章类别 in tool

接触编程的人应该都知道Git吧,一款分布式管理的工具,对于团队协作项目和项目的版本管理来说就是利器,这篇文章就说说我在团队协作中基本上都会使用到的Git方法。

常用操作

  • 初始化仓库: git init
  • 添加新增的代码或文件到暂存区中: git add
  • 提交我们添加的内容到仓库中: git commit
  • 从远程仓库拉去master分支的内容: git pull origin master
  • 从本地master分支的内容上传到远程仓库中: git push origin master
  • 查看git状态: git status

git分支使用

在开发过程中,我们会有一个主分支master,这个分支是代码的主要内容,当不同的人负责不同模块功能开发的时候,就需要用到分支,比如有三个人分别负责A/B/C三个不同模块的功能,那么就可以各自创建分支:A分支,B分支,C分支,当他们各自完成了自己的功能后在合并到主分支上去。

查看当前的分支

G:\test>git branch
  a
* master

可以看到,当前有两个分支,一个是a分支,一个是master分支,master分支前有一个*号,代表此刻的内容正处于master分支上。

分支的使用

比如我需要负责B功能的模块,那么我会新建一个b分支,怎么新建呢,分两步:

第一:切换到master分支 第二:在master分支的基础上新建分支

切换到master分支上新建分支b,那么此刻b分支里的内容就和master一模一样!

1.当我们的分支不在master上的时候,那么切换分支是这样的:

G:\test>git checkout master
M       m.md
Switched to branch 'master'

checkout 可以理解为切换的意思

2.新建b分支:

G:\test>git branch b

那么现在b分支上的内容就和master上的分支一样了,在b分支上完成B功能后合并到master分支上即可。

3.合并b分支到master上

首先切换到master:

git checkout master

接着合并:

G:\test>git merge b
Already up-to-date.

当合并完分之后,b分支可能不需要了,那么删掉b分支:

G:\test>git branch -d b
Deleted branch b (was 0095e88).

当然了,如果想要强行删除b分支的话可以git branch -D b。

4.把b分支上传到远程仓库

git push origin b

5.删除远程b分支

git push origin : b

6.将远程的b分支迁到本地:

git chekcout b origin/b

冲突的解决

可能在团队协作的时候,他们都不约而同的修改同一个代码的地方,这时候合并的时候会产生冲突提示,因为git并不知道要用哪个人写的才是对的,需要我们自己解决冲突才能合并。

比如这样的冲突:

<<<<<<< HEAD
hahhahahahah  this is a master branch~~~
=======

hahhahahahah  this is a b branch~~~
>>>>>>> b

「«««< HEAD」 和 「=======」是原本的代码。 「=======」和「»»»> b」是分支的代码。

可以看到masert被改成b了,这时候git不知道是master对,还是b对,所以就要自己解决,这里比如我们觉得是master对,那么就将

<<<<<<< HEAD

=======

hahhahahahah  this is a b branch~~~
>>>>>>> b

删掉,然后再add–>commit–>merge!

git stash

如果当前的代码还没写好没有commit,又想切换到别的分支上进行操作,那么可以先将没commit的代码stash暂存起来:

git stash

在别的分支完成操作并发布之后,就可以切换到刚刚没有写好的代码进行:

git stash apply

这时候之前没commit的代码就回来了,就可以继续写完再commit了。

此外,还可以通过git stash list 看看你stash的记录,可以使用git stash drop 删除记录!

git ignore

有时候自己电脑上的配置文件不需要上传上去,可以使用ignore文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/src/main/webapp/WEB-INF/classes/
/src/main/webapp/WEB-INF/lib/
/src/main/webapp/META-INF/
/src/main/webapp/logs/
/src/main/webapp/node_modules/
/src/main/webapp/.idea/
/target/
/build/
/.settings/
/.idea/
.classpath
.project
.buildpath
.gitignore

当遇到.gitingnore不生效的时候,可以执行以下命令:

git rm -r --cached .
git add .
git commit -m 'update .gitignore'

我的相关文章

相关资料

-git - 简明指南 -15 分钟学会使用 Git 和远程代码库 -Git使用教程 -Git 使用规范流程