我有两个分支:

当地分公司(和我一起工作的那家) 远程分支(公共的,只有经过良好测试的提交才会去那里)

最近我把我当地的分公司搞得一团糟。

如何将本地分支完全替换为远程分支,以便从远程分支现在所在的位置继续工作?

我已经搜索了SO,在本地签出到远程分支没有任何影响。


当前回答

这就像三步一样简单:

删除本地分支:git branch -d local_branch 获取最新的远程分支:git Fetch origin remote_branch 基于远端分支重建本地分支: Git checkout -b local_branch origin/remote_branch

其他回答

Git获取origin remote_branch git reset——hard FETCH_HEAD

这就像三步一样简单:

删除本地分支:git branch -d local_branch 获取最新的远程分支:git Fetch origin remote_branch 基于远端分支重建本地分支: Git checkout -b local_branch origin/remote_branch

用远程取代当前本地分支的最安全、最完整的方法:

git stash
git merge --abort
git rebase --abort
git branch -M yourBranch replaced_yourBranch
git fetch origin yourBranch:yourBranch
git checkout yourBranch

存储线保存您尚未提交的更改。分支线将分支移动到不同的名称,释放原来的名称。获取行检索远程的最新副本。结帐行将原始分支重新创建为跟踪分支。

或者作为bash函数:

replaceWithRemote() {
    yourBranch=${1:-`git rev-parse --abbrev-ref HEAD`}
    git stash
    git merge --abort
    git rebase --abort
    git branch -M ${yourBranch} replaced_${yourBranch}_`git rev-parse --short HEAD`
    git fetch origin ${yourBranch}:${yourBranch}
    git checkout ${yourBranch}
}

它将当前分支重命名为replaced_master_98d258f之类的内容。

用远程分支替换所有内容;但是,只能从本地分支打开的同一个提交:

git reset --hard origin/some-branch

或者,从远程分支获取最新的并替换所有内容:

git fetch origin some-branch
git reset --hard FETCH_HEAD

顺便说一句,如果需要,你可以清除你还没有提交的未跟踪文件和目录:

git clean -fd

转到结帐。

我总是使用这个命令将本地更改替换为存储库更改。 Git签出空间。