本文收集整理关于git提交代码到分支的相关议题,使用内容导航快速到达。
内容导航:
Q1:git 怎么把一个分支的代码提交到另一个分支上
1,从已有的分支创建新的分支(如从master分支),创建一个dev分支
git checkout -b dev
2,创建完可以查看一下,分支已经切换到dev
git branch
* dev
master
3.建立本地到上游(远端)仓的链接 --这样代码才能提交上去
git branch --set-upstream-to=origin/dev
取消对master的跟踪
git branch --unset-upstream master
Q3:git修改了代码没有提交,居然也能切换到其他分支
假设你修改文件A,该文件A存在于分支一和分支二,那你修改了代码不commit是可以这么切换的。
你说的那种不能切换的情况应该是:你在分支一修改了文件A,但你修改的地方在分支二也修改过了。那就会出现冲突了。
你同事应该把分支二同步或者回到某一个节点了……
Q4:Git未提交代码,切换分支后,代码丢失,怎么找
git status 看一下有没有红色的文件
如果master分支上的修改不会覆盖你develop的修改,是允许切换的,这时候修改不会丢,反之不能切换。既然切换成功了,你要么是:
你用命令强制切换,修改玩完,节哀吧。如果是eclipse开发的,试试在local history里头找找吧
你根据提示提交了,但你忘记了
Q5:git 主干分支代码能merge到开发分支代码
1.git checkout xxx(切换到你要将其他分支合并到的主分支上,xxx是分支名)
2.git merge xxx (合并操作)
3.git branch -d xxx(删除已经合并的分支,可选择不删除)
git clone url #克隆新的版本库
02git init
03git pull repo_name #有关联的远程库,抽取并和本地合并
04git fetch remote_repo_name #抽取并新建分支
05、06、07、08#在当前commit对象上新建分支指针head
09#head指向正在工作中的本地分支的指针(别名)
10#不会切换到新建的分支上
11git branch branch1、12、13#切换分支将head指向branch1、14git checkout branch1、15、16#工作流程卡
17#在不同的分支里反复切换,并在时机成熟时把他们合并到一起
18#git的分支实际是一个包含所指向对象校验和的文件(40个字符长度SHA-1字串)
19、20#分支的新建和合并
21#0、自己工作分支mybranch,工作的好好的
22、23#1、突然有新需求,先切换到生产环境分支product;
24git checkout product
25、26#2、为新需求新建分支branch_pack,切到其中,并在其中编码,直到通过测试用例
27# -b 新建分支并切换到其上
28git checkout -b issueXXXX
29、30#3、切换到生产环境分支product,将2中的开发工作分支branch_pack合并进来,然后推送到生产服务器上
31git checkout product
32# 合并
33git merge branch_pach
34#冲突解决,merge失败时很可能因对同一文件的同时更改,所以必须手动人工解决 取舍代码,确认冲突解决后需要把冲突文件 git add到staged area,运行git status查看所有状态确保无误后再git commit提交,注释好冲突为什么这么解决
35、36git push 远程仓库名本地仓库名
37、38#分支删除
39git branch -d branch_pach
40
414、切换到mybranch继续自己的工作
42git checkout mybranch
43、44#切换分支最好没有待提交的文件,即stage area是清洁的
45#查看各个分支最后一个提交对象的信息
46git branch -v
47git branch --merge/no-merged
48#查看哪些分支已被并入当前分支(译注:也就是说哪些分支是当前分支的直接上游
49、50
51、52#给分支生成patch文件可以给
53git format-patch
54、55、56#把本地名为serverfix的分支推送到远程origin库的awesomebranch分支
57git push origin serverfix:awesomebranch
58、59#跟踪远程分支 从远程分支checkout出的本地分支成为跟踪分支
60git checkout -b sf origin/serverfix
61git checkout --track origin/serverfix
62、63#删除远程分支
64git push origin :serverfix
65、66git两种开发分支方法
67长期分支:一个主分支保持稳定代码,其余多个开放分支
68特性topic分支:多个短期单一功能的分支
69、70#给当前文件 打特定版本标签
71git tag -abeta0.1 -m "some 注释"
72、73#回退到某个tag
74git tag beta0.1、
Q6:git 怎么提交合并分支的部分代码
如果执行自动合并没有成功的话,git会在索引和工作树里设置一个特殊的状态, 提示你如何解决合并中出现的冲突。
有冲突(conflicts)的文件会保存在索引中,除非你解决了问题了并且更新了索引,否则执行 git commit都会失败:
$ git commit
file.txt: needs merge
如果执行 git status 会显示这些文件没有合并(unmerged),这些有冲突的文件里面会添加像下面的冲突标识符:
<<<<<<< HEAD:file.txt
Hello world
=======
Goodbye
>>>>>>> 77976da35a11db4580b80ae27e8d65caf5208086:file.txt
你所需要的做是就是编辑解决冲突,(接着把冲突标识符删掉),再执行下面的命令:
$ git add file.txt
$ git commit
注意:提交注释里已经有一些关于合并的信息了,通常是用这些默认信息,但是你可以添加一些你想要的注释。
上面这些就是你要做一个简单合并所要知道的,但是git提供更多的一些信息来 帮助解决冲突。