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分支。
5 个月之前 回复
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新建一个分支--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 push
git push的一般形式为 git push <远程主机名> <本地分支名> <远程分支名> ,例如 git push origin master:refs/for/master ,即是将本地的master分支推送到远程主机origin上的对应master分支, origin 是远程主机名,第一个master是本地分支名,第二个master是远程分支名。1.1 git push origin m
git---基本操作、新建分支,合并分支branch到主干master ,git pull ,git push
初始化git仓库 git init ///输出:Initialized empty Git repository in /home/jin/Documents/gitLearn/.git////则于指定位置初始化了一个空仓库,会自动创建.git文件。文件中.gitnore则用来排除指定文件夹/文件提交到变化中 添加变化 git add . //提交所有新增文件和变化文件,不包括被删除文件git ad
git push常见操作
git push命令用于将本地分支的更新推送到远程主机对应分支。 基本用法 git push : 详解: 该命令的用法一句话总结是--将本地仓库的"哪个分支"推送到"哪台主机"的"哪个分支",因此需要描述清楚四个元素中的三个元素。 1 远程主机名有两种写法, 一种是直接写完整的远程主机地址 $ git push ssh://git@dev.lemote.com/rt4ls.
Git新建本地分支与远程分支关联问题:git branch --set-upstream
Git新建本地分支与远程分支关联问题:git branch --set-upstream git在本地新建分支, push到remote服务器上之后,再次pull下来的时候,如果不做处理会报以下提示: You asked me to pull without telling me which branch you want to merge with, and 'branch.production.merge' in your configuration file does not tell me, e
Git删除远程master分支问题
一不小心把本地的临时分支push到server上去了,想要删除。 一开始用 git branch -r -d origin/branch-name 不成功,发现只是删除的本地对该远程分支的track,正确的方法应该是这样: git push origin :branch-name 冒号前面的空格不能少,原理是把一个空分支push到server上,相当于删除该分支。
Git入门指南八:Git撤消操作
十二. Git撤消操作 12.1 修改最后一次提交 git commit --amend 1.新建一个文件 2.提交一个之前的更改 3.跟踪这个文件 4.跟前一次一起提交 提示你是否重新编辑提交说明,如果不编辑退出后还是跟之前一样提交 commit 成功 或 git commit -m “” 可以直接提交
Git入门——分支的基本使用与'合并'、'多人协作'常遇到的问题
1.基础概念与方法借用廖雪峰老师的形象的例子: 分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN。 如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平行宇宙合并了,结果,你既学会了Git又学会了SVN! 一般来说,分支是不仅仅只有主分支的, master分支是主分支,因此要时刻与远程同步;
Git远程分支和refs文件详解
最近同时同步博客到github和gitcafe上,遇到一些问题,我们分如下几个方面来分析一下: 推送远程分支到同一个服务器 推送远程分支到不同服务器 总结一下
在git首次提交时出错以及解决方式
[root@iZ948ycksu4Z git]# git push root@127.0.0.1's password: No refs in common and none specified; doing nothing. Perhaps you should specify a branch such as 'master'. fatal: The remote end hung up un