2 u010200767 u010200767 于 2018.04.16 22:48 提问

git问题多人协作是push master还是branch? 5C
git

远程有个maste,dev, feature1,feature2....分支。
我们是团队开发,请问假如远程git repo的feature1是我的分支,我本地有2个分支,master和b1,我需要把我的代码push到远程的feature1上。
我是(1)
#git checkout master
#git merge b1
#git push master: origin/feature1
还是(2)
#git checkout b1
#git merge master
#git push b1: origin/feature1
还是(3)
#git checkout b1
#git push b1: origin/feature1
哪一种是对的呢?谢谢!

6个回答

qdf8474
qdf8474   2018.04.17 08:57

应该是git pull更新代码,
git checkout feature1切换到feature1分支,直接修改你的代码,
git add增加你修改的文件到本地feature1分支,
git commit -m"" [修改的代码]提交你的修改到本地feature1分支,
git push origin feature1"" [修改的代码]push你本地分支上的代码到feature1分支,再由管理员合并到master分支。

qdf8474
qdf8474 git push origin feature1push你本地分支上的代码到feature1分支,再由管理员合并到master分支。
3 个月之前 回复
qq_28685001
qq_28685001   2018.04.16 23:11

多人协作的工作模式通常是这样:
首先,可以试图用git push origin branch-name推送自己的修改;

如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

如果合并有冲突,则解决冲突,并在本地提交;

没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!

如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name。

RunningDemoer
RunningDemoer   2018.04.17 01:59

git基本操作
1. 初始化本地仓库
git init

  1. 管理仓库下的文件
    git status 查看当前仓库下文件的变动情况
    A.文件没有被跟踪[untracked]
    git add --all

    git add 目标文件名
    B.文件被跟踪【也就是添加到索引区了】

        git commit -m "log"
    
    C.文件已被存储到本地仓库中,以提交点为id[40位字母与数字组成的唯一性字符串]
    
  2. 分支的操作
    git branch 查看所有的分支

git checkout branchName 切换到指定分支

git checkout -b branchName 创建并切换到指定分支

git branch -d branchName 删除指定分支

git merge brancheName 把指定分支合并到当前分支上[一般先切换到master后再执行]

  1. 如何撤消修改
    第一种情况:修改没有添加到stage区[索引区]

    git checkout -- 文件名

    第二种情况:修改已经添加到stage区[索引区]
    首先要把它从stage区撤出
    git reset HEAD 文件名
    其次,再执行第一种情况的命令即可
    git checkout -- 文件名

5.如何解决冲突?conflicted
首先,打开有冲突的文件,把冲突解决掉
其次,再执行:
git add --all
最后,执行:
git commit -m "log"


如何把本地仓库同步到远程
1. 首先,你要确定一个远程仓库,供应商有:
www.github.com
www.gitee.com
www.coding.net
...

  1. 分为两种情况 A. 先在远程平台上,创建一个PUBLIC的远程仓库,然后,通过在本地执行: git clone www.gitee.com/你的用户名/创建的仓库名.git 这样一来,就把远程仓库同步到本地了。

B. 我事先已经在本地创建好了项目,但是远程没有,要按如下步骤进行
1. 先在远程平台上,创建一个远程仓库

2. 要把本地项目与远程建立联接
基于SSH
git remote add origin git@gitee.com:yejf/jquerytech.git  // 把本地库与远程库关联

基于HTTPS
git remote add origin https://github.com/yejf/jQueryTeach.git

git push -u origin master  //第一次推送,使用-u选项,会让用输入用户名
    和密码
git push origin master  // 第一次推送后,直接使用该命令即可推送修改

拉取:
git pull
nonesense_01
nonesense_01   2018.04.17 08:07

第一种方案比较方便可靠

qq_34209997
qq_34209997   2018.04.17 11:10

多人协作的工作模式通常是这样:
首先,可以试图用git push origin branch-name推送自己的修改;

如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;

如果合并有冲突,则解决冲突,并在本地提交;

没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!

如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name。

pwrs_fqyd
pwrs_fqyd   2018.07.09 10:49

你本地的分支b1,master

注:master分支一般是不做任何修改的
假设你在b1分支上做了修改并且是基于远程feature1做的修改

你现在处于master分支:
git fetch origin featuer1
git checkout origin/featuer1
git checkout -b featuer1
git co b1
git rebase featuer1 //注意:是否会出现冲突,如果出现,先解决
git co featuer1
git merge b1
git push origin featuer1

当然,如果master上也有修改建议将master上修改的节点通过cherry-pick命令迁到分支上

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
【Git】常用命令commit提交,push推送,merge,添加分支branch
1.查看所有分支 用命令:git branch -a $ git branch -a * gym master remotes/origin/HEAD -> origin/master remotes/origin/gym remotes/origin/master 结果里一共5个分支,带remotes的是远程分支,不带的是本地分支。前面带*号的表现当前所处的分支。 mast
git新建一个分支--set-upstream
  一。使用场景: 本地新建一个分支后,必须要做远程分支关联。如果没有关联,git会在下面的操作中提示你显示的添加关联。关联目的是如果在本地分支下操作: git pull, git push ,不需要指定在命令行指定远程的分支. I create a new branch in Git: git branch my_branch Push it: git push origin my
Git入门——分支的基本使用与'合并'、'多人协作'常遇到的问题
1.基础概念与方法借用廖雪峰老师的形象的例子: 分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN。 如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平行宇宙合并了,结果,你既学会了Git又学会了SVN! 一般来说,分支是不仅仅只有主分支的, master分支是主分支,因此要时刻与远程同步;
"On branch master Your branch is ahead of 'origin/master' by 2 commits. (use "git push" to ..."解决
在git使用时,提交本地修改到远程库
$ git push origin test:master // 提交本地test分支 作为 远程的master分支
$ git push origin test:master         // 提交本地test分支 作为 远程的master分支
Git - 团队合作利器 Branch 与 Git Flow
【原文地址】:从0开始学习 GitHub 系列之「团队合作利器 Branch」Git 相比于 SVN 最强大的一个地方就在于「分支」,Git 的分支操作简直不要太方便,而实际项目开发中团队合作最依赖的莫过于分支了,关于分支前面的系列也提到过,但是本篇会详细讲述什么是分支、分支的具体操作以及实际项目开发中到底是怎么依赖分支来进行团队合作的。1. 什么是分支?我知道读者中肯定有些人对分支这个概念比较模糊
Git: push 出错的解决 (branch is currently checked out)
<br />[remote rejected] master -> master (branch is currently checked out)<br /> remote: error: refusing to update checked out branch: refs/heads/master<br /> remote: error: By default, updating the current branch in a non-bare repository<br /> remote:
Git 的origin和master分析
Git 的origin和master分析  http://lishicongli.blog.163.com/blog/static/1468259020132125247302/   首先要明确一点,对git的操作是围绕3个大的步骤来展开的(其实几乎所有的SCM都是这样) 1.     从git取数据(git clone) 2.     改动代码 3.     将改动传回git(
Git master branch has no upstream branch的解决
Git master branch has no upstream branch的解决 在push代码时,出现“git master branch has no upstream branch”问题的原因是没有将本地的分支与远程仓库的分支进行关联。如下图所示: 具体原因:出现这种情况主要是由于远程仓库太多,且分支较多。在默认情况下,git push时一般会上传到origin下的master...
git 关于分支,关于远程分支,关于push pull 的时机
远程分支(remote branch)是对远程仓库状态的索引。它们是一些无法移动的本地分支;只有在进行 Git 的网络活动时(push ,pull,fetch clong)才会更新。远程分支就像是书签,提醒着你上次连接远程仓库时上面各分支的位置。         我们用 (远程仓库名)/(分支名) 这样的形式表示远程分支。比如我们想看看上次同 origin 仓库通讯时 master 的样子,就应该查看 origin/master 分支。如果你和同伴一起修复某个问题,但他们先推送了一个 iss