最近我学到了Git的基本概念.我们确实使用了一些git-svn来熟悉它的使用.我想和朋友一起在git上开始我的第一个"真正"项目.
因此,我想问你一般使用Git的最佳做法是什么,如果SVN熟悉的开发人员遇到任何陷阱?
我已经在一个本地话题分支上工作了一段时间,偶尔只做一些改动.
与此同时,主分支发展迅速.我决定将主分支中的新更改合并到我的本地主题分支中(与我分支的原始主提交相比几乎没有任何变化):
git fetch
git checkout my_branch
git merge origin/master
Run Code Online (Sandbox Code Playgroud)
但是git警告我:
请输入提交消息以解释为何需要此合并,特别是如果它将更新的上游合并到主题分支中.
这让我很好奇.为什么警告?我应该做的,而不是一个重订?还是樱桃挑选?除此之外,我如何在我的情况下使用rebase或者Cherry-pick?
我们公司使用git来跟踪文档/代码更改,几个人进行更改并将其推送到中央存储库。一般来说,对于git或命令行工具,大多数人还是新手。对于他们,我们有脚本可以在进行更改后更新或发布其本地存储库。
是否有任何工作流程能更好地处理此类情况,以最大程度地减少必须由git经验丰富的人员解决的合并冲突?
我遇到了一个疯狂的问题.我把我的整个项目放在主分支中.早些时候,一个人正在研究这个项目,但它是在SVN.他做了一些改变,我需要将这些改变与我的整合.两个项目都具有相同的文件夹结构,唯一的区别是使用的VCS类型.我做了以下
在这个阶段,如果我运行git status命令,我可以看到更改(文件被标记为已修改)我需要与我的主分支集成.然后,
结果是我的代码在master分支中被"code_to_integrate"分支中的代码覆盖.我失去了我的全部修改.HEAD在c2,我也可以看到c1.如果我使用
git reset --hard c1,
我会收回我的更改.现在,它就像使用命令一样
git合并 - 他们的
我从合并分支(code_to_integrate)获得了整个更改,并且在合并分支(master)中丢失了更改.发生了什么?.这应该是直截了当的吗?任何帮助将不胜感激.提前致谢
我正在考虑将我的仅合并工作流转换为更频繁地使用rebase.在这种特殊情况下,我是唯一的开发人员,但我在多个平台上工作,通常为特定于平台的部分编辑相同的文件,通常具有非冲突的更改.但是我对此有点不确定,因为关于git merge vs git rebase以及它们的安全性的争论(例如看到这个与此相关,这是问题的两个最佳答案).
问题:如何做以下的事情,目标是"安全",但仍尽可能干净拉/ rebase/merge:
git pull --rebase直到第一次合并操作与本地历史冲突.git pull --no-rebase合并其余部分并进行冲突解决.因此,如果没有冲突,最终结果将带有rebase和良好的线性历史.如果存在冲突,则可以看到合并,但并行历史记录将尽可能短.
这可能是一个简单的普通git命令或两个,有正确的开关(我可以写入拉动脚本或别名)?如果没有,是否可以使用一些现有工具?
另一种看待这个问题的方法:我想自动决定选择rebase还是合并,所以在做pull时我不需要考虑这个细节.
此外,这甚至有意义吗?:)
创建了一个关闭master的新分支,但从未真正更改任何代码.一周之后,我回来开始工作,现在掌握了很多变化.
由于我没有改变任何东西,最好是从主分支中重新绑定或合并或其他东西,以便我可以开始使用最新的代码库吗?
git clone git@github.com:foo/bar.git bar-master
git branch release
git push origin release
git clone -b release git@github.com:foo/bar.git bar-release
cd bar-master
touch foo.txt
git commit -m "foo.txt"
cd bar-release
Run Code Online (Sandbox Code Playgroud)
如何将更改从master合并到bar-release并将更改推回到远程origin/release分支.合并更改并将更改推送回远程分支的正确方法是什么.
我们要求班上的学生使用github来保存他们所有的课程项目代码.每个学生都创建了他的回购.(我想我应该创建回购并创建团队,这是我的错误).然后,我在我的组织下分配了每个回购.
我认为,当学生更新原始回购时,我可以简单地进行更改.我认为我对拉力如何运作的理解是错误的.
在下图中,我可以看到,学生已经更新了自己回购了一些新的文件,但有什么办法,我可以简单地更新我已付出了回购?

我有一个父分支和子分支。
当我想将子分支合并到父分支时,据说重新建立分支是最好的合并方法。
如果我们重新调整另一个分支中所做的所有更改都会进入当前的子分支,对吗?
然后,当有人想查看子分支中所做的新更改时,其他分支的更改就会太正确。
有人可以解释一下 Rebasing、Pull request 和 Merge 吗?
我正在尝试找到合并分支的最佳方法。
git ×9
merge ×2
rebase ×2
svn ×2
azure-devops ×1
git-svn ×1
github ×1
pull-request ×1
shell ×1