“ Git Pull Force ”、“ git重置分支到原点”或者换句话说,拉出远程分支来覆盖本地分支,似乎是被广泛搜索的功能,尽管本地很少有下降,但人们对它的兴趣却越来越大。
\n对于不断壮大的团队和不断增加的开发人员数量来说,这绝对有意义。
\n\n目前,最短的工作解决方案非常冗长并且需要分支知识
\ngit reset --hard origin/<branch_name>\nRun Code Online (Sandbox Code Playgroud)\n\n\n\n
不幸的是,因为输入以下内容要快得多
\ngit pull\nRun Code Online (Sandbox Code Playgroud)\n然而,这也带来了其自身的挑战。历史分歧、合并冲突等等……
\n我们确实有这样的简写
\ngit push origin HEAD -u --force\nRun Code Online (Sandbox Code Playgroud)\n它将本地分支推<branch_name>送到原点,覆盖同名的远程分支<branch_name>并将其设置为自己的上游分支。
然而,没有这样的--force/ reset\xc2\xa0 替代git pull。
将此功能添加到git 的最佳方式是什么?
\n是否有语法重置为当前分支的默认上游HEAD?
就像是:
git checkout mybranch
git reset --hard origin/mybranch
Run Code Online (Sandbox Code Playgroud)
哪个origin/mybranch可以是当前分支的上游HEAD的通用?
我正在使用 intelliJ 开发一个功能分支,我想将我的团队在 master 上所做的更改集成到我的分支中,但我搞砸了。
我检查了 master,从 Git 弹出窗口中选择了功能分支,并选择了“将当前分支重新设置为所选”,认为这会将 master 的更改添加到功能分支之上,不幸的是,情况恰恰相反。所以我现在想做的是撤销master上的rebase,我想让master回到最新的头部提交。
有什么建议吗?
我读到变基创建了一个新的提交,但我认为这没有完成,因为我有冲突,当我从 git 命令行git status从 master 运行时,我看到:
You are currently rebasing branch 'master' on 'FEATURE/....'.
(fix conflicts and then run "git rebase --continue")
(use "git rebase --skip" to skip this patch)
(use "git rebase --abort" to check out the original branch)
Run Code Online (Sandbox Code Playgroud)
no changes added to commit (use "git add" and/or "git commit -a")
问题也可能是"为什么在git pull存在时使用git fetch?".
执行a的原因git fetch可能是您希望在运行之前查看fetch命令的日志以了解您将要合并的内容git merge.
git fetch那么git merge作为经典的工作流程,git fetch如果你以前没有运行过这个命令,你还有其他常见的东西吗?
在git pull origin branch-name本地主分支之后,我收到一个错误消息,提示“自动合并失败;修复冲突,然后提交结果。因为分支在前面有几个提交,在主分支后面有几个提交。如果我想从远程分支中获取所有更改并忽略冲突,我应该在哪里做?
我试过git merge --strategy-option theirs哪个返回错误“错误:无法合并,因为您有未合并的文件。”
最近,由于几次错误的提交,我不得不压缩提交。简单地这样git pull --rebase origin master做对我来说是有效的,但我的队友已经在旧历史之上合并了新历史。所以我想知道是否有可能覆盖本地历史?
假设分支中有三个时间线remoteNew,localOld并且localNew有一个小时前的提交。
追随作品,用新的历史完全覆盖旧的历史。不过这里需要注意的是,oldHistory 在 newHistory 创建后没有新的提交。
git checkout localOld
git pull --rebase origin remoteNew
Run Code Online (Sandbox Code Playgroud)
以下并不如我所愿。它没有覆盖本地历史,而是创建了带有冲突的合并。
git checkout localNew
git pull --rebase origin remoteNew
Run Code Online (Sandbox Code Playgroud)
我相信这种情况发生是因为本地有新的提交。虽然我真正想要的是git push --force类似的结果,但为了拉动。另一种方法是将 master 分支替换为新分支并重命名。还有其他选项可以覆盖本地历史记录吗?
注意:想澄清一下,这是旧的存储库,但团队尚未对其进行处理,我们正处于采用 git 并在整个团队开始处理它之前完成工作流程的初始阶段。
我正在使用github来托管一个git存储库,我需要在某些机器中克隆该存储库(这些机器不是为了更改代码)它们仅用于保存软件代码的副本.
我使用以下命令行将远程存储库克隆到本地计算机:
git clone -b master git://github.com/jquery/jquery.git jquerylocal
Run Code Online (Sandbox Code Playgroud)
当我需要同步(获取文件和添加的新文件的更改)以jquerylocal最新版本命名的本地文件夹时,问题就来了,因为我的机器添加了名为的文件,.DS_Store并给出了以下错误:
error: Your local changes to the following files would be overwritten by merge:
.DS_Store
Run Code Online (Sandbox Code Playgroud)
我想说git忽略我在本地directorey中创建的所有文件,并替换为新文件并在现有文件中进行新的更改.
我也想知道怎么说git忽略一些同步的文件夹和文件.
非常感谢.