我正在寻找一个git命令来帮助我准备好进入Master时使用我的功能分支.这个git命令会将我在分支上的所有更改压缩到master之上的单个提交中.我今天这样做:
git rebase origin/master
git rebase -i HEAD~4
Run Code Online (Sandbox Code Playgroud)
其中4是壁球的提交次数.但是,这需要我知道我有多少提交.我今天这样做是通过运行:
git log HEAD...origin/master
Run Code Online (Sandbox Code Playgroud)
然后计算提交.
我觉得应该有更好的方法来做到这一点.或者这也是其他人如何做到的?
我在一个月前为我的代码创建了一个新的分支,我从develop分支创建了feature1分支.
? git branch
develop
* feature1
Run Code Online (Sandbox Code Playgroud)
我已经在feature1上工作了一个月了,并且很多更改都推动了开发分支,如何在开发一个版本的最新提交中更新我当前的分支feature1?
我不想签出master并合并我的feature1分支.我也不想使用git cherry-pick手动将提交从开发转移到feature1.
有帮助吗?
根据我的阅读,它们都有助于我们获得线性历史.
根据我的实验,rebase一直在工作.但是merge -ff-only仅适用于可以快速转发的场景.
我也注意到,git merge创建了一个合并提交,但如果我们使用--ff-only,它会给出一个线性历史,它基本上等于git rebasing.所以--ff-only杀了git merge的目的,对吧?
那么它们之间的实际区别是什么?
我在 GitHub 上创建了一个新的远程存储库“基础设施”。
然后,我在计算机上的“infr”文件夹中创建了一个本地存储库git init
git push -u origin master当我用新分支“master”创建本地存储库时。
我现在想将“master”分支合并到“main”分支。
尝试打开拉取请求后,git 没有检测到它们之间的差异,也不让我进行合并,尽管检查了每个分支,但您可以在主项目中看到我的项目中的所有文件,而在主项目中什么也没有。
我尝试将“master”分支重命名为“main”,但出现错误:“此时无法重命名分支“master”:新分支已存在”。
那么如何将master合并到主分支呢?
一位同事和我现在都在主分公司工作.我在工作树中有一些我不想提交的代码(调试语句等).现在,如果他对某些相同的文件进行更改,我就无法合并它们:
$ git merge origin/master
Updating 1b8c5c6..eb44c23
error: Entry 'blah.java' not uptodate. Cannot merge.
Run Code Online (Sandbox Code Playgroud)
来自subversion背景,我习惯于在从存储库中提取更改时自动合并工作树,如果存在冲突,我会手动解决它们.
我发现在git中这样做的最快方法是:
$ git stash
$ git merge origin/master
$ git stash pop
Run Code Online (Sandbox Code Playgroud)
本质上,删除我未提交的更改,执行合并然后重新应用更改.如何告诉merge自动将我的工作树与我想要引入的更改合并?
我是GIT的新手,到目前为止我一直在使用Visual Studio Online TFS进行版本控制,而且我是唯一的开发人员.当我创建我的上一个项目时,我有点误导我认为GIT是最好的选择.
所以我登记了我的主人.然后,当我打算处理一个我读过的功能时,我必须创建一个分支(这在TFS中不是必需的)所以我创建了"development_print"作为一个新的分支并处理我的功能.
现在我的功能已经完成,但我不知道如何将它合并回主人.我目前对多个分支不感兴趣,只是希望我的新功能合并为master并保持master.
在VS中有一个合并分支选项,但它只允许我合并到development_print(我希望我的功能成为主!)所以它不允许我设置为当前分支和合并来自分支显示:
这有点令人困惑?它似乎全都倒退了.那么如何在不失去我对该功能所做的所有工作的情况下摆脱这种混乱?
在过去的几天里,我一直在考虑与Git进行变革.反驳的大多数论据都说它清理历史并使其更加线性.如果您进行简单合并(例如),您将获得一个历史记录,显示历史记录何时分歧以及何时将其重新组合在一起.据我所知,rebasing删除了所有历史记录.问题是:为什么你不希望回购历史反映代码开发的所有方式,包括它在哪里以及如何分歧?
我最近开始使用Git(之前我使用过subversion,但我现在正在对使用bitbucket和git的项目进行一些协作).
直到今天,我发现一个善意的同事已经推动了对大师的改变,而不是成为一个分支.这意味着当我尝试提交时,我收到错误:
更新被拒绝,因为您当前分支的提示落后
我知道这应该通过提出重新同步的拉取请求来解决,但我不想丢失我在本地做出的更改而且我同样不想强制提交并消除其他人做出的更改.
什么是允许我合并更改而不丢失的正确方法?
我试图git pull origin master从我的服务器做一个但不断收到错误:
Please move or remove them before you can merge.
没有未跟踪的文件,但由于某种原因,它似乎与被忽略的文件有问题.
我尝试运行一个git clean -nd以查看将被删除的内容,并列出了一大堆被忽略的文件.gitignore.
我怎么能解决这个问题呢?
我有一个应用程序在分支上的git存储库中运行(比如说dev).应用程序修改某些存储库中的内容并提交它们.我现在必须将这些更改合并到另一个分支(比如说master),但是在我git checkout master做这个之前我不想做这个问题.有没有办法说"将当前分支合并为主"?
git ×10
git-merge ×10
git-rebase ×2
github ×2
bitbucket ×1
branch ×1
git-branch ×1
git-clean ×1
git-pull ×1
git-squash ×1
git-stash ×1
merge ×1