覆盖 Smartgit 中的其他分支(github)
overwrite other branch(github) in Smartgit
我是 smartgit-ubuntu 的新手,我有一个问题。我开始将 smartgit 用于 gui。我在 github 上有一个项目,我有 2 个分支,分别是主分支和新分支。我在 smartgit 上克隆了项目,并在新分支中更改了代码。另外,我将代码推送到新分支,代码在 github-new 分支上。我做错了,我想用主代码覆盖新分支。总之,我想用主代码更改新的分支代码,我想将它推送到 github-new 分支。我能怎么做?提前致谢。
您可以将您本地的新分支重置为 master,然后强制推送它。
.
的例子
即使没有 smartGit,您也可以在 command-line 中做到这一点:
cd /path/to/my/repo
git checkout master
git pull
git checkout newBranch
git reset --hard master
git push --force -u origin newBranch
但是,正如 OP 评论的那样:
This reset deletes github commits and copy master
to other branch.
Namely I want to commit all master
code to other branch in github and I don't want to delete past commits
在这种情况下,您可以:
- 在重置 之前找到 newBranch 引用的提交 :参见“Recover from
git reset --hard?
”
即:
git checkout newBranch
git reflog show
git reset --hard <oldSHA1 of newBranch>
checkout the files from master
(入住newBranch)
git checkout newBranch
git checkout master -- .
(注意最后的 -- .
: "dash-dash-space-dot" 在第二次结帐结束时)
添加、提交和推送:您将从 master
添加、提交和推送文件到 newBranch
,同时保留 newBranch
的历史记录。
如果您之前已经推送过 newBranch,则需要强制推送
git push --force
在任何 git
中,要使分支指向特定提交(包括另一个分支),您需要 reset
。特别是 smartgit
How to checkout and reset using smartgit? 表明你应该 reset 在你的 gui
- 只需检出新分支,并将其重置为 master.
我是 smartgit-ubuntu 的新手,我有一个问题。我开始将 smartgit 用于 gui。我在 github 上有一个项目,我有 2 个分支,分别是主分支和新分支。我在 smartgit 上克隆了项目,并在新分支中更改了代码。另外,我将代码推送到新分支,代码在 github-new 分支上。我做错了,我想用主代码覆盖新分支。总之,我想用主代码更改新的分支代码,我想将它推送到 github-new 分支。我能怎么做?提前致谢。
您可以将您本地的新分支重置为 master,然后强制推送它。
即使没有 smartGit,您也可以在 command-line 中做到这一点:
cd /path/to/my/repo
git checkout master
git pull
git checkout newBranch
git reset --hard master
git push --force -u origin newBranch
但是,正如 OP 评论的那样:
This reset deletes github commits and copy
master
to other branch.
Namely I want to commit allmaster
code to other branch in github and I don't want to delete past commits
在这种情况下,您可以:
- 在重置 之前找到 newBranch 引用的提交 :参见“Recover from
git reset --hard?
”
即:
git checkout newBranch
git reflog show
git reset --hard <oldSHA1 of newBranch>
checkout the files from
master
(入住newBranch)git checkout newBranch git checkout master -- .
(注意最后的 -- .
: "dash-dash-space-dot" 在第二次结帐结束时)
添加、提交和推送:您将从
master
添加、提交和推送文件到newBranch
,同时保留newBranch
的历史记录。
如果您之前已经推送过 newBranch,则需要强制推送git push --force
在任何 git
中,要使分支指向特定提交(包括另一个分支),您需要 reset
。特别是 smartgit
How to checkout and reset using smartgit? 表明你应该 reset 在你的 gui
- 只需检出新分支,并将其重置为 master.