Git手把手简易教程

/ 随笔 / 没有评论 / 935浏览

前言

git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目,是团队协作开发的必备技能,下图是git的工作流程。

git工作流程

注册

下面以gitlab为例,注册好账号后,新建项目,命名为test_git。

gitlab新建项目

gitlab新建项目2

下面请准备两台电脑,没有两台电脑可以用虚拟机代替

A和B电脑都安装Git

设置git的提交邮箱和提交用户名(这步不能漏,不设置邮箱和用户名是无法提交的),执行命令:

git config --global user.email "you@example.com"
git config --global user.name "your name"

这个邮箱和用户名只是你提交到git远程上显示出来的,可以随便填写,并不需要和你的gitlab邮箱和用户名保持一致,但建议保持一致。

A和B电脑都配置SSH-Key

配置ssh-key,简单来说就是git本地和git远程通过密钥关联起来,不用每次推送和拉取都输入密码,而且还是加密传输。

1. 本地配置

命令行输入(Windows的打开安装好的git.exe输入命令):

ssh-keygen -t rsa -C "你的邮箱地址"

一路回车,生成ssh密钥。

2. 远程配置

登录gitlab,打开Settings -> SSH Keys,把文件id_rsa.pub的内容复制到Key输入框中,再编写Title输入框,title一般写id_rsa.pub里的那个邮箱(A和B两台电脑就需要添加两个ssh-key,title可以相同)。

gitlab配置ssh-key

gitlab配置ssh-key2

gitlab配置ssh-key3

A电脑初始化项目

新建文件夹test_git,进入test_git文件夹,新建文件test.txt,写入一行A init,

A电脑初始化项目-文件内容

在test_git文件夹下执行以下命令:

git init
git remote add origin git@gitlab.com:chunjie/test_git.git
git add .
git commit -m "first commit"
git push -u origin master

git远程地址换成你的:

git远程地址

在gitlab上项目里新建develop远程分支:

gitlab新建develop远程分支

gitlab新建develop远程分支2

A电脑操作1

在test_git文件夹下,新建并切换到develop本地分支,即执行命令:

git checkout -b develop

修改test.txt文件,在最后添加一行A develop add 1,

A电脑操作1-文件内容

在test_git文件夹下执行命令:

git add .
git commit -m "A develop add 1"
git push origin develop

B电脑操作1

在一个文件目录下克隆项目,进入test_git文件目录,新建并切换到develop本地分支,拉取最新的develop远程分支,即在test_git目录下执行命令:

git clone git@gitlab.com:chunjie/test_git.git
git checkout -b develop
git pull origin develop

打开查看test.txt文件,

B电脑操作1-文件内容

修改test.txt文件,在最后添加一行B develop add 1,

B电脑操作1-文件内容2

在test_git目录下执行命令:

git add . 
git commit –m "B develop add 1"
git push origin develop

A电脑操作2

修改test.txt文件,在最后添加一行A develop add 2,

A电脑操作2-文件内容

在test_git文件夹下执行命令:

git add .
git commit -m "A develop add 2"
git pull origin develop

发现提示冲突了,

A电脑操作2-提示冲突

根据提示是test.txt文件冲突,因为刚才B电脑也在最后添加了一行B develop add 1,所以需要解决冲突,打开test.txt文件,

A电脑操作2-冲突文件

根据实际情况编辑好test.txt,这里是再添加一行,即在B develop add 1后再添加一行A develop add 2,

A电脑操作2-解决冲突

然后在test_git文件夹下执行命令:

git add .
git commit -m "解决冲突"
git pull origin develop
git push origin develop

B电脑操作2

拉取最新的develop远程分支,即在test_git文件夹下执行命令:

git pull origin develop

发现test.txt文件变成了最后添加两行B develop add 1和A develop add 2。

B电脑操作2-文件内容

知识点

补充

发现不少人会问怎样算解决完冲突,其实怎样算解决完冲突是由你决定的,你觉得是解决完了就是解决完了,总之你打开有冲突的文件进行编辑,你觉得修改好了就是解决完冲突了,然后就可以add-commit-push了,为了减少处理冲突,每完成一个小功能就马上提交。

ps:发现造成这个疑问往往是使用eclipse用git界面操作时造成的,建议用命令行操作,不要用界面操作。

总结

git常用的命令:

查看当前的状态:git status

克隆项目:git clone 远程地址

添加当前目录下所有文件到本地当前分支:git add .

添加指定文件到本地当前分支:git add 文件路径

提交到本地当前分支:git commit -m "提交的内容"

从远程分支拉取到本地当前分支:git pull origin 远程分支名

把本地当前分支推送到远程分支:git push origin 远程分支名

切换到不存在的本地分支:git checkout -b 本地分支名

切换到已存在的本地分支:git checkout 本地分支名

合并本地指定分支到本地当前分支:git merge 本地分支名

合并远程指定分支到本地当前分支:git merge origin/远程分支名

个人微信公众号

微信公众号:纯洁的技术分享(chunjie_tech)

纯洁的技术分享