如何将新项目代码推送到现有 github 存储库中的特定分支?
How to push new project code to specific branch in existing github repository?
我在我的代码中添加了远程存储库的来源。
我现有的存储库有三个分支:master
、test
、user
.
但是在通过命令'git remote -v
'添加并确认远程origin
之后,'git branch --list
'命令只显示一个分支master
。
不知道是不是正好指向我要推送代码的那个源头
我想将新代码推送到 test
分支。
git分支-avv
master first commit
origin first commit
* test first commit
remotes/origin/master Update register.tsx
remotes/origin/test Update next.config.js
remotes/origin/aman june 25
我想推送到远程test分支,删除本地分支origin,test,master
git switch -c test
fatal: only one reference expected
当我尝试从 vscode 切换到 remote/origin/test
分支时,它说分支 'test' 已经存在。
为此,您需要:
git fetch
然后 git branch -avv
将显示所有分支及其 SHA1。
注意:只有 git branch --all/-a
会列出本地 以及 远程分支。
然后您可以比较 master
和 origin/master
提交。
解释:见“Git Internals - The Refspec”
$ git remote add origin https://github.com/schacon/simplegit-progit
Running the command above adds a section to your repository’s .git/config
file, specifying the name of the remote (origin
), the URL of the remote repository, and the refspec to be used for fetching:
[remote "origin"]
url = https://github.com/schacon/simplegit-progit
fetch = +refs/heads/*:refs/remotes/origin/*
fetch refspec 是 git fetch 将使用 Git 可以从远程存储库中找到的所有远程分支填充 origin
命名空间的原因。
I want to push the new code to test branch.
如果你有:
- 当前正在修改代码,但尚未修改 added/committed
- 只有一个当地分行(
master
)
你可以这样做:
git fetch
git switch -c test
git add .
git commit -m "Code for test"
git rebase origin/test
git push
由于您首先执行 git fetch
,因此本地分支测试将自动执行 origin/test
。
见 git switch
:
If <branch>
is not found, but there does exist a tracking branch in exactly one remote (call it <remote>
) with a matching name, treat as equivalent to:
$ git switch -c <branch> --track <remote>/<branch>
rebase
步骤确保您的本地提交 done/reploayed 在顶部 origin/test
。
I have one local commit but that was not intentional.
I want to push the code to remote/test
branch and rest local branches like master
, origin
and test
I want delete them all
然后我会,以确保我没有丢失任何东西:
- 直接在
test
分支上克隆您的远程存储库(使用 git clone --branch/-b
)
- 导入您当前的代码
- 在测试分支中进行新的提交
- 推送测试
即:
cd /path/to/existing/local/repo
cd ..
git clone -b test https://github.com/<me>/<myRemoteRepo> repo2
cd repo2
git --work-tree=../repo add .
git commit -m "Import from original local repo"
git push
我在我的代码中添加了远程存储库的来源。
我现有的存储库有三个分支:master
、test
、user
.
但是在通过命令'git remote -v
'添加并确认远程origin
之后,'git branch --list
'命令只显示一个分支master
。
不知道是不是正好指向我要推送代码的那个源头
我想将新代码推送到 test
分支。
git分支-avv
master first commit
origin first commit
* test first commit
remotes/origin/master Update register.tsx
remotes/origin/test Update next.config.js
remotes/origin/aman june 25
我想推送到远程test分支,删除本地分支origin,test,master
git switch -c test
fatal: only one reference expected
当我尝试从 vscode 切换到 remote/origin/test
分支时,它说分支 'test' 已经存在。
为此,您需要:
git fetch
然后 git branch -avv
将显示所有分支及其 SHA1。
注意:只有 git branch --all/-a
会列出本地 以及 远程分支。
然后您可以比较 master
和 origin/master
提交。
解释:见“Git Internals - The Refspec”
$ git remote add origin https://github.com/schacon/simplegit-progit
Running the command above adds a section to your repository’s
.git/config
file, specifying the name of the remote (origin
), the URL of the remote repository, and the refspec to be used for fetching:[remote "origin"] url = https://github.com/schacon/simplegit-progit fetch = +refs/heads/*:refs/remotes/origin/*
fetch refspec 是 git fetch 将使用 Git 可以从远程存储库中找到的所有远程分支填充 origin
命名空间的原因。
I want to push the new code to test branch.
如果你有:
- 当前正在修改代码,但尚未修改 added/committed
- 只有一个当地分行(
master
)
你可以这样做:
git fetch
git switch -c test
git add .
git commit -m "Code for test"
git rebase origin/test
git push
由于您首先执行 git fetch
,因此本地分支测试将自动执行 origin/test
。
见 git switch
:
If
<branch>
is not found, but there does exist a tracking branch in exactly one remote (call it<remote>
) with a matching name, treat as equivalent to:$ git switch -c <branch> --track <remote>/<branch>
rebase
步骤确保您的本地提交 done/reploayed 在顶部 origin/test
。
I have one local commit but that was not intentional.
I want to push the code toremote/test
branch and rest local branches likemaster
,origin
andtest
I want delete them all
然后我会,以确保我没有丢失任何东西:
- 直接在
test
分支上克隆您的远程存储库(使用git clone --branch/-b
) - 导入您当前的代码
- 在测试分支中进行新的提交
- 推送测试
即:
cd /path/to/existing/local/repo
cd ..
git clone -b test https://github.com/<me>/<myRemoteRepo> repo2
cd repo2
git --work-tree=../repo add .
git commit -m "Import from original local repo"
git push