目录
1.1多人协作
1.1.1创建仓库
新建两个文件夹,不需要初始化为git仓库,直接克隆远程仓库命名testGit1,testGit2
指定本地仓库级别的用户名和邮箱
git config --local user.name '林冲'
git config --local user.name '鲁智深'
git config --local user.email 'linchong@txjava.com'
git config --local user.email 'luzhishen@txjava.com'
git config --local -l
git branch -av
1.1.2协作处理
在testGit中通过鲁智深添加文件并且推送到远程
直接克隆远程仓库,不需要使用命令来初始化本地仓库
git init
vi B.txt
git add .
git commit -m 'lzs first commit'
git push
git branch -av
在testGit1仓库中林冲查看远程状态发现已经过期。
git remote show
此时林冲应该从远程仓库来更新拉取
git pull --rebase
fast-forward表示不需要手工处理冲突直接合并。
ll
cat B.txt
1.1.3冲突处理
当两个人修改同一个文件的同一行的时候就会发生冲突
我们使用鲁智深修改B.txt内容后
提交并且推送到远程
vi B.txt
git add .
git commit -m 'lzs first update'
git push
此刻林冲也修改B.txt内容:
vi B.txt
git add .
git commit -m 'lc first update'
git push
我们提交并且推送远程的时候发现出现冲突,推送失败
此刻git要求我们先拉取更新,在林冲仓库中进行操作
git pull -rebase
git push
我提示中我们发现拉取成功,但是自动合并失败。git建议我们修改冲突后提交。
我们可以修改冲突,此时和svn是一样的。我们保留林冲的,最终B.txt中的内容是冲突解决提交的B.txt中的内容
vi B.txt
git add .
git commit -m '冲突解决'
git push
推送到远程
同时鲁智深仓库需要拉取更新
git pull --rebase
搞定
1.2分支推送协作
林冲仓库创建develop分支
git checkout -b develop
我们发现git push无法把develop推送到远程。
git push
执行下面的命令,这就是把本地的分支推送到远程分支。
git push --set-upstream origin develop
我们可以看到远程分支已经推送。
同时本地也关联了远程develop分支
git branch -av
除此之外我们可以使用下面命令完成远程分支推送
git push -u origin 分支名
git checkout -b feature
git push -u origin feature
我们创建分支,并且把分支推送到远程
分支查看
git branch -av
1.3分支拉取协作
由于鲁智深已经推送,我们使用林冲的账户来拉取,我们可以看到新建立了分支
git branch -av
但是我们发现有远程分支,但是没有本地的develop分支。
这时我们可以创建本地的develop分支,此刻我们也可以修改本地分支的名字
git checkout -b develop origin/develop
我们已经创建分支并且切换到develop上,而且该分支和远程分支develop关联。
查看
我们还可以使用另一种方式本地分支的追踪,但是必须要先git pull
git checkout --track origin/feature
1.4远程分支的删除
我们在鲁智深仓库删除Feature分支,删除之后远程的Feature分支关联还在。
git branch -d feature
git branch -av
我们也可以删除对应的远程分支
git push origin --delete feature
当我们通过另一个用户来查看本地对应的远程分支的时候可以看到远程分支的变化。
查看origin远程对应的分支
git remote prune origin