如何将新项目代码推送到现有 github 存储库中的特定分支?

How to push new project code to specific branch in existing github repository?

我在我的代码中添加了远程存储库的来源。
我现有的存储库有三个分支:mastertestuser.

但是在通过命令'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 会列出本地 以及 远程分支。

然后您可以比较 masterorigin/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