git学习(6)多人协作
git学习(6)多人协作
当我们从远程仓库克隆的时候,git会自动的把本地的
master
和远程的master
对应起来,并且远程仓库的默认名称是origin
查看远程库的信息
$ git remote
origin
$ git remote -v
origin git@github.com:keithmorning/gitstudy.git (fetch)
origin git@github.com:keithmorning/gitstudy.git (push)
推送分支的时候,添加上分支的名称,就能把分支推送到远程库对应的远程分支上
$ git push orignin master
$ git push origin dev
如果远程没有该分支会自动添加,但是如果dev存在,且你的git目录是从origin clone
来的,那么你需要自己建立分支,语法 $ git checkout -b dev origin/dev
,如果是自己建立dev分支提交到远程dev分支的是还需要自己建立Track
,语法$ git branch --set-upstream=origin/dev
一步一步来看,首先先看不小心自己建立dev 需要添加Track
$ git clone git@github.com:KeithMorning/gitStudy.git
Cloning into 'gitStudy'...
remote: Counting objects: 64, done.
remote: Compressing objects: 100% (38/38), done.
remote: Total 64 (delta 19), reused 59 (delta 14)
Receiving objects: 100% (64/64), 5.44 KiB | 0 bytes/s, done.
Resolving deltas: 100% (19/19), done.
Checking connectivity... done.
//克隆成功
$ ls
gitStudy
$ cd gitStudy
$ ls
currentwork.txt newDev.txt readme.txt
/*建立新分支*/
$ git checkout -b dev
Switched to a new branch 'dev'
/*vim新建文件goodstudy.h*/
$ ls
currentwork.txt goodstudy.h newDev.txt readme.txt
/*当前dev分支提交修改*/
$ git add goodstudy.h
$ git commit -m "add new code on dev"
[dev 114cffc] add new code on dev
1 file changed, 1 insertion(+)
create mode 100644 goodstudy.h
好了现在我们push一下试试
$ git push origin dev
To git@github.com:KeithMorning/gitStudy.git
! [rejected] dev -> dev (non-fast-forward)
error: failed to push some refs to 'git@github.com:KeithMorning/gitStudy.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
这里新建的dev和远程库的dev内容都是不一样的哦,跟我们新建一个devotherName
是一样的,所以先pull一下吧
$ git pull
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=origin/<branch> dev
git提醒我们没有当前的分支建立连接,因此可以通过最后的提示来修改当前分支和远程分支的联系,
$ git branch --set-upstream-to=origin/dev
Branch dev set up to track remote branch dev from origin.
我们在pull一下试试
$ git pull
Merge branch 'dev' of github.com:KeithMorning/gitStudy into dev
。。。
提醒我们将本地dev分支和远程dev分支合并,输入合并的原因,或者不输入取消合并,注意这个时候进入的是vim模式,点击i
进入编辑模式,输入原因后,点击esc
,然后输入:wq
$ git pull
Merge made by the 'recursive' strategy.
code.m | 1 +
readme.txt | 1 +
2 files changed, 2 insertions(+)
create mode 100644 code.m
好了现在可以push
了
$ git push origin dev
Counting objects: 7, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (5/5), 552 bytes | 0 bytes/s, done.
Total 5 (delta 2), reused 0 (delta 0)
To git@github.com:KeithMorning/gitStudy.git
032fc97..3611fbb dev -> dev
如果一开始使用的是$ git checkout -b dev orign/dev
会自动添加本地分支和远程分支分关系,需要做的就是完成本地分支修改后,提交后push
就可以了
在上一步中我们使用pull的时候进行了一次分支合并,如果不幸出现合并的时候冲突怎么办呢
如A同学修改了readme.txt并已经做了提交和push,当我们也修改了readme.txt进行push的时候会发生冲突如
$ git push origin dev
To git@github.com:KeithMorning/gitStudy.git
! [rejected] dev -> dev (fetch first)
error: failed to push some refs to 'git@github.com:KeithMorning/gitStudy.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
我们需要先pull
一下看看那
$ git pull
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (1/1), done.
remote: Total 3 (delta 2), reused 3 (delta 2)
Unpacking objects: 100% (3/3), done.
From github.com:KeithMorning/gitStudy
23e511f..98eae17 dev -> origin/dev
Auto-merging readme.txt
CONFLICT (content): Merge conflict in readme.txt
Automatic merge failed; fix conflicts and then commit the result.
好了现在打开冲突的文件readme.txt,可以看到冲突的地方进行修改后重新提交就可以了
最后付上外国友人制作的表单
git学习(6)多人协作的更多相关文章
- git学习:多人协作,标签管理
多人协作: 查看远程库的信息, git remote 推送分支到远程库 git push origin master/dev 注意:master是主分支,时刻需要与远程同步 dev是开发分支,也需要与 ...
- git 学习笔记 --多人协作
当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin. 要查看远程库的信息,用git remote: $ git r ...
- git 分支管理——多人协作
git 分支管理--多人协作 一般一个项目有一个master主分支,还有一个develop开发分支.主要是在develop分支上协作开发,然后merge合并到master主分支上. 当从远程仓库克隆时 ...
- Git版本控制之多人协作
上篇文章我们主要简单的介绍了有关git的一些基本常识和一些简单的命令.但那终究是皮毛,我们使用git最主要的目的还是管理我们的项目,多人协作.本篇文章主要涉及以下两个大模块: 分支的概念及原 ...
- Git教程之多人协作
当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin.要查看远程库的信息,用git remote:
- Git详细教程---多人协作开发
Git可以完成两件事情: 1. 版本控制 2.多人协作开发 如今的项目,规模越来越大,功能越来越多,需要有一个团队进行开发. 如果有多个开发人员共同开发一个项目,如何进行协作的呢. Git提供了一个非 ...
- GIT简单使用——多人协作篇
多人协作的工作模式通常是这样:1.首先,可以试图用git push origin <branch-name>推送自己的修改:2.如果推送失败,则因为远程分支比你的本地更新,需要先用git ...
- Git_学习_04_ 多人协作开发的过程
多人协作的工作模式通常是这样: 1.首先,可以试图用 git push origin branch-name 推送自己的修改: 2.如果推送失败,则因为远程分支比你的本地更新,需要先用 git pul ...
- Git 分支管理 多人协作 远程仓库 补充
当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了, 并且,远程仓库的默认名称是origin. 如果是本地仓库关联远程仓库 --- 要查看远程库的信息,用 ...
- 记录git多人协作开发常用的流程,供新手参考
声明:博主写的博客都是经过自己总结或者亲测成功的实例,绝不乱转载.读者可放心看,有不足之处请私信我,或者给我发邮件:pangchao620@163.com. 写作目的: 记录一下我看完廖学锋老师的gi ...
随机推荐
- 如何使用微信JS-SDK实际分享功能
http://jingyan.baidu.com/album/d3b74d64c517051f77e609ed.html?picindex=7
- shell判断文件夹是否存在
#shell判断文件夹是否存在 #如果文件夹不存在,创建文件夹 if [ ! -d "/myfolder" ]; then mkdir /myfolder fi #shell判断文 ...
- android bitmap compress
android的照相功能随着手机硬件的发展,变得越来越强大,能够找出很高分辨率的图片. 有些场景中,需要照相并且上传到服务,但是由于图片的大小太大,那么就上传就会很慢(在有些网络情况下),而且很耗流量 ...
- Roslyn介绍
介绍 一般来说,编译器是一个黑箱,源代码从一端进入,然后箱子中发生一些奇妙的变化,最后从另一端出来目标文件或程序集.编译器施展它们的魔法,它们必须对所处理的代码进行深入的理解,不过相关知识不是每个人都 ...
- 一款基于jQuery的图片左右滑动焦点图
今天给大家分享一款基于jQuery的焦点图插件,这款jQuery焦点图插件的特点是可以多张图片左右滑动切换,可以点击切换按钮进行图片滑动,同时也支持图片自动切换.另外,这款jQuery焦点图是宽屏的, ...
- springboot集成jdbcTemplate
这里使用springboot自带的jdbcTemplate连接mysql数据库 1. 添加依赖包 <!-- jdbc --> <dependency> <groupId& ...
- 关于Unity中的transform组件(一)
一.transform组件用途 1.维护场景树 2.对3D物体的平移,缩放,旋转 二.场景树定义 在Hierarchy视图中显示的: 一个game_scene场景,下面有Main Camera节点,D ...
- 一个 Map 函数、一个 Reduce 函数和一个 main 函数
MapReduce 最简单的 MapReduce应用程序至少包含 3 个部分:一个 Map 函数.一个 Reduce 函数和一个 main 函数.main 函数将作业控制和文件输入/输出结合起来.在这 ...
- gsoap 学习 1-自己定义接口生成头文件
接口头文件的格式在向导中没有看到明确的说明性的内容,但通过看开发包中示例程序中头文件定义和通过wsdl生成的头文件的内容,可以发现,头文件中都会出现以下几行信息 //gsoap ns service ...
- 【BZOJ】1037: [ZJOI2008]生日聚会Party(递推+特殊的技巧)
http://www.lydsy.com/JudgeOnline/problem.php?id=1037 看来自己越来越弱了... 这些计数题设计的状态都很巧妙,,自己智商太低QAQ 和矩阵dp做的那 ...