首页
学习
活动
专区
圈层
工具
发布

git 合并某次提交(commit)到指定分支上

Git 合并特定 commits 到另一个分支 合并某个分支上的单个 commit 。...首先,用 git log或 GitX 工具查看一下你想选择哪些 commits 进行合并,例如: 比如,dev 分支上的 commit 134 非常重要,    它含有一个 bug 的修改,或其他人想访问的内容...无论什么原因,你现在只需要将 134 合并到 master,而不合并 dev 上的其他 commits ,所以我们用 git cherry-pick 命令来做: git checkout master...现在 134 就被合并到 master 分支,并在 master 中添加了 commit(作为一个新的commit)。...cherry-pick 和 merge 比较类似, 如果 git 不能合并代码改动(比如遇到合并冲突),git 需要你自己来解决冲突并手动添加 commit 。

4.2K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Git工作流协作的一些经验,分支、合并、提交,推送,移除历史

    版本管理在编程中的重要程度不言而喻,其中git工作流也是最主流的方式,接下来总结一下git工作流中的一些比较实用的概念和具体方法。...最常规的几个命令 init, add, rm, status, diff, commit 分别用来 新建仓库、添加、删除、查看概览、比较更改,提交更改。...创建分支、提交推送 第二种方式,不仅可以用于为源仓库贡献代码,也可以作为“定制化”开发的一种可行途径。这时候如果觉得自己开发的某些代码对于源仓库也有价值,可以再考虑贡献回去。...在fork之后,实际上我们不必把自己的仓库当成是树枝,当我们创建完分支后,两个仓库已经是对等的了。我们可以向源仓库推送更新,也可以把源仓库的更新当做推送方,合并到自己的仓库中。...之后就根据需要进行合并操作就可以了。 如果是贡献代码,那么需要源仓库开发者通过并且选择再合并。我们更新则是自己来通过。

    74520

    Git分支合并选择

    用Git进行多人协作开发时,必然会合并代码,解决冲突。然而合并代码也是需要点技巧的,如果对一些关键命令没有理解去使用的话,git的版本演进路线就会变得很乱,从而造成了日后维护的一些麻烦。    ...临时性分支:除了常设分支以外,还有一些临时性分支,用于应对一些特定目的的版本开发。...(个人还是喜欢上面的写法) git merge develop feature feature分支中新的合并提交(merge commit)将两个分支的历史连在了一起。...但是这同样意味着每次合并上游更改时feature分支都会引入一个外来的合并提交。如果master非常活跃的话,这或多或少会污染你的分支历史。...总结 如果你想要一个干净的、线性的提交历史,没有不必要的合并提交,你应该使用git rebase 而不是git merge 来并入其他分支上的更改。

    1.2K50

    Git分支合并选择

    然而合并代码也是需要点技巧的,如果对一些关键命令没有理解去使用的话,git的版本演进路线就会变得很乱,从而造成了日后维护的一些麻烦。    ...临时性分支:除了常设分支以外,还有一些临时性分支,用于应对一些特定目的的版本开发。...但是这同样意味着每次合并上游更改时feature分支都会引入一个外来的合并提交。如果master非常活跃的话,这或多或少会污染你的分支历史。...但是,rebase为原分支上每一个提交创建一个新的提交,重写了项目历史,并且不会带来合并提交。 rebase最大的好处是你的项目历史会非常整洁。...总结 如果你想要一个干净的、线性的提交历史,没有不必要的合并提交,你应该使用git rebase 而不是git merge 来并入其他分支上的更改。

    1.3K00

    git合并分支步骤

    git合并分支步骤 假如我们现在在dev分支上,刚开发完项目,执行了下列命令: git add . git commit -m '提交的备注信息' git push -u origin dev 想将...dev分支合并到master分支,操作如下: 1、首先切换到master分支上 git checkout master 2、如果是多人开发的话 需要把远程master上的代码pull下来 git pull...origin master //如果是自己一个开发就没有必要了,为了保险期间还是pull 3、然后我们把dev分支的代码合并到master上 git merge dev 4、然后查看状态及执行提交命令...,需要push到远程master上 > 最后执行下面提交命令 git push origin master 5其他命令 更新远程分支列表 git remote update origin --prune...查看所有分支 git branch -a 删除远程分支Chapater6 git push origin --delete Chapater6 删除本地分支 Chapater6 git branch

    77890

    git合并历史提交

    这时候才发现git其他命令的作用。 现在的情况是,repo是一个远程team维护的,我们需要增加新feature,那么就是一个feature分支了。...于是,人家要求我们将feature分支的提交合并,这样看起来清爽。 一些简单的命令准备 合并分支的命令是rebase,除此之外,其他的一些命令也应该知晓。...提交修改 git commit -m "本次提交添加了xxxx" vim的简单指令: 参阅vim的简单使用 准备一个测试repo git init test-rebase cd test-rebase...现在我们想要把第2次和第3次提交的内容合并成一次提交。 开始rebase 1. 复制合并前的一次提交的hash 这里就是第一次提交的hash。...使用squash. squash 修改第三次提交为squash,意思是和前一次(第二次)提交合并。

    2.3K50

    Git 合并多次提交

    在合并分支的时候,希望将多次提交合并成一个,然后再 cherry-pick 到主分支。...合并分支 develop 分支做开发,可能会进行多次提交,但是在发布或者进行 PR 的时候,我们只希望看到一次提交。这个时候,我们需要进行 git rebase 之后进行合并。...# HEAD~3 表示将近三次提交都合并,如果是将 2 次合并则为 HEAD~2 git rebase -i HEAD~3 这个时候,看到的是一上对 COMMIT 信息的提示 pick 9ba5122...而终止 squash/s git 会应用这个补丁,但会与之前的提交合并 fixup/f git 会应用这个补丁,但会丢掉提交日志 exec/x git 会在 shell 中运行这个命令 drop/d...git 会移除这次 COMMIT 将第二个 pick c6da035 ~~~ 这一行修改成 squash c6da035 ~~~ ,使之与之前的提交合并。

    1.7K30

    Git分支管理——创建、合并、删除分支

    Git的默认分支是master。在多次提交操作之后,其实我们已经有一个指向最后那个提交对象的master分支。他会在每次的提交操作中自动向前移动。...#解决合并冲突 #其实有上述报错后,dev分支下的内容已经存在了master目录下的文件中,只是没有提交而已,提交即可 #但是工作中不建议直接提交,因为内容有些特殊的地方 [root@git git]#...master 4、关闭快速合并 在上面说到,在查看git版本的提交历史时,其分支结构表现的不是那么直观,那是因为默认开启了快速合并的选项,这里写下如何关闭快速合并 #进入分支,修改文件内容,并提交 [...#再次查看提交日志 * f438cbf 分支合并说明 |\ | * 3d40b6a 关闭快速合并 |/ * 26ff6b8 冲突已解决 |\ | * 051082c alter from...-m "合并时提交信息" dev #不使用快速合并分支 [root@git ll]# git stash #将当前版本库的状态临时存储 [root@git ll]# git stash

    5.1K20

    【Git】Git 分支管理 ( 解决分支合并冲突 | 创建并切换分支 git switch -c feature1 | 修改 feature1 分支并提交 | 修改 master 主版本并提交 )

    文章目录 一、创建并切换分支 git switch -c feature1 二、修改 feature1 分支并提交 三、修改 master 主版本并提交 一、创建并切换分支 git switch -c...feature1 ---- 执行 git switch -c feature1 命令 , 创建分支 feature1 , 并切换到该分支 ; 执行过程 : D:\Git\git-learning-course...分支并提交 ---- 修改 feature1 中的 README.txt 文件内容为 feature1 , 并执行 git add README.txt 和 git commit -m "feature1..." 命令提交到版本库 ; 执行过程 : D:\Git\git-learning-course>git switch -c feature1 Switched to a new branch 'feature1...修改 master 中的 README.txt 文件内容为 master , 并执行 git add README.txt 和 git commit -m "feature1" 命令提交到版本库 ; 执行过程

    85830

    git提交如何忽略某些文件

    在使用git对项目进行版本管理的时候,我们总有一些不需要提交到版本库里的文件和文件夹,这个时候我们就需要让git自动忽略掉一下文件。...对于已经提交过文件,想要让ignore生效, 也是有办法的: 使用git rm --cached从 Git 的数据库中删除对于该文件的追踪; 把对应的规则写入 .gitignore,让忽略真正生效; 提交...最后有一点需要注意的,git rm --cached 删除的是追踪状态,而不是物理文件;如果你真的是彻底不想要了,你也可以直接 rm --> 忽略  --> 提交+推送。...暂时忽略某个文件的修改 开发过程中可能还会遇到这样的情况,某个文件没有修改好,但是又要提交代码, 想这次忽略这个文件,下一次提交时再去提交它。...git update-index --assume-unchanged git update-index --assume-unchanged,这样 Git 暂时忽略你对文件做的修改; 当你的工作告一段落决定可以提交的时候

    16.1K100

    Git忽略已经提交过一次文件Git忽略文件

    Git忽略已经提交过一次文件Git忽略文件 1、从未提交过的文件可以用.gitignore 也就是添加之后从来没有提交(commit)过的文件,可以使用.gitignore忽略该文件 该文件只能作用于未跟踪的文件...(Untracked Files),也就是那些从来没有被 git 记录过的文件 比如,忽略log/下的日志文件,可以在.gitignore中写 log/* 2、已经推送(push)过的文件,想从git远程库中删除...,并在以后的提交中忽略,但是却还想在本地保留这个文件 执行命令 git rm --cached Xml/config.xml 后面的 Xml/config.xml 是要从远程库中删除的文件的路径,支持通配符...* 比如,不小心提交到git上的一些log日志文件,想从远程库删除,可以用这个命令 3、已经推送(push)过的文件,想在以后的提交时忽略此文件,即使本地已经修改过,而且不删除git远程库中相应文件 执行命令...如果要忽略一个目录,打开 git bash,cd 到 目标目录下,执行: git update-index --assume-unchanged $(git ls-files | tr '\n' ' '

    2.8K30

    IDEA中对Git的常规操作(合并,提交,新建分支,更新)

    ,提交到远程仓库 场景四:小张从远程仓库获取小袁的提交 场景五:小袁接受了一个新功能的任务,创建了一个分支并在分支上开发 场景六:小袁把分支提交到远程Git仓库 场景七:小张获取小袁提交的分支 场景八:...小张把分支合并到主干 下面来看以上各场景在IDEA中对应的操作。...下图是Git与提交有关的三个命令对应的操作,Add命令是把文件从IDE的工作目录添加到本地仓库的stage区,Commit命令把stage区的暂存文件提交到当前分支的仓库,并清空stage区。...注意,这里创建的分支仅仅在本地仓库,如果想让组长小张获取到这个分支,还需要提交到远程仓库。 场景六:小袁把分支提交到远程Git仓库 切换到新建的分支,使用Push功能 ? ?...场景八:小张把分支合并到主干 新功能开发完成,体验很好,项目组决定把该功能合并到主干上。 切换到master分支,选择Merge Changes ? 选择要合并的分支,点击Merge完成 ?

    7.1K31

    git提交本地分支到远程分支 转

    :$ git branch -d [name] ---- -d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。...如果想强制删除一个分支,可以使用-D选项 合并分支:$ git merge [name] ----将名称为[name]的分支与当前分支合并 创建远程分支(本地分支push到远程):$ git push ...origin [name] 删除远程分支:$ git push origin :heads/[name] 我从master分支创建了一个issue5560分支,做了一些修改后,使用git push origin...master提交,但是显示的结果却是'Everything up-to-date',发生问题的原因是git push origin master 在没有track远程分支的本地分支中默认提交的master...4) 手动删除子模块残留的目录 5)忽略一些文件、文件夹不提交 在仓库根目录下创建名称为“.gitignore”的文件,写入不需要的文件夹名或文件,每个元素占一行即可,如 target bin *.db

    4K20
    领券