3513

上流に「プッシュ」したいローカルブランチを作成しました。新しく作成されたリモートブランチを追跡する方法について、StackOverflowにも同様の質問があります。

ただし、私のワークフローは少し異なります。まず、ローカルブランチを作成します。満足してブランチを共有したい場合にのみ、ローカルブランチをアップストリームにプッシュします。

  • どうすればいいですか?(私のグーグル検索は何も思いつかなかったようです)。
  • アップストリームリポジトリからプルするように同僚に指示するにはどうすればよいですか?

更新Git2.0には、私が以下に書いたより簡単な答えがあります:https ://stackoverflow.com/a/27185855/109305

4

24 に答える 24

4075

まず、ローカルでブランチを作成します。

git checkout -b <branch-name> # Create a new branch and check it out

リモートブランチをリモートサーバーにプッシュすると、リモートブランチが自動的に作成されます。したがって、準備ができたら、次のことができます。

git push <remote-name> <branch-name> 

<remote-name>は通常、クローン元のリモートにgitoriginが付ける名前です。同僚はそのブランチをプルするだけで、ローカルで自動的に作成されます。

ただし、正式には、形式は次のとおりです。

git push <remote-name> <local-branch-name>:<remote-branch-name>

ただし、1つを省略すると、両方のブランチ名が同じであると見なされます。そうは言っても、注意点として、(コロンを使用して)のみを指定するという重大な間違いをしないでください。そうしない:<remote-branch-name>と、リモートブランチが削除されます。

後続のgit pull人が何をすべきかを知るために、代わりに次を使用することをお勧めします。

git push --set-upstream <remote-name> <local-branch-name> 

以下で説明するように、この--set-upstreamオプションはアップストリームブランチを設定します。

最新の、または正常にプッシュされたすべてのブランチについて、引数のないgit-pull(1)およびその他のコマンドで使用されるアップストリーム(追跡)参照を追加します。

于 2009-10-05T09:29:17.737 に答える
966

まず、ローカルでブランチを作成する必要があります

git checkout -b your_branch

その後、ブランチでローカルに作業できます。ブランチを共有する準備ができたら、プッシュします。次のコマンドは、ブランチをリモートリポジトリのオリジンにプッシュして追跡します

git push -u origin your_branch

チームメイトは、次の方法でブランチにアクセスできます。

git fetch
git checkout origin/your_branch

git pushに引数を渡さなくても、ブランチでの作業とプッシュを続行できます(引数なしのgit pushは、マスターをリモートマスターにプッシュし、your_branchはリモートyour_branchにプッシュします...)

git push

チームメイトは、コミットを実行してブランチにプッシュしてから、明示的にプッシュできます

... work ...
git commit
... work ...
git commit
git push origin HEAD:refs/heads/your_branch

または、ブランチを追跡してgitpushへの引数を回避します

git checkout --track -b your_branch origin/your_branch
... work ...
git commit
... work ...
git commit
git push
于 2011-07-26T01:09:09.753 に答える
380

シンプルなGit2.0+ソリューション:

Git 2.0以降、動作はよりシンプルになりました:

gitを設定して、作業をpush.default = current楽にすることができます。

これを追加したので、新しいブランチをアップストリームにプッシュできます

$ git push -u

-u同じ名前のリモートブランチを追跡します。この構成では、gitpushへのリモート参照を自動推測します。git.configのドキュメントから:

push.default

refspecが明示的に指定されていない場合にgitpushが実行するアクションを定義します。

push.default = current-現在のブランチをプッシュして、受信側で同じ名前のブランチを更新します。中央ワークフローと非中央ワークフローの両方で機能します。

私にとって、これは私の日常のGitワークフローを非常に単純化したものです。構成設定は、ブランチをローカルに追加してリモートで作成する「通常の」ユースケースを処理します。また、(フラグgit co remote_branch_nameを使用するのではなく)実行するだけで、リモートからローカルブランチを簡単に作成できます。--set-upstream-to

この質問と受け入れられた回答はかなり古いものですが、動作が変更されたため、ワークフローを簡素化するための構成オプションが存在するようになりました。

グローバルGit構成に追加するには、コマンドラインで次のコマンドを実行します。

$ git config --global push.default current
于 2014-11-28T09:46:01.427 に答える
92

前の回答で述べたように、

git push <remote-name> <local-branch-name>:<remote-branch-name>

ローカルブランチをプッシュするには十分です。

同僚は、次のコマンドを使用して、すべてのリモートブランチ(新しいブランチを含む)をプルできます。

git remote update

次に、ブランチに変更を加えるために、通常のフロー:

git checkout -b <local-branch-name> <remote-name>/<remote-branch-name>
于 2011-12-27T14:12:49.047 に答える
83

現在のブランチに基づいてローカルに新しいブランチを作成します。

git checkout -b newbranch

通常どおりに変更をコミットします。次に、それを上流にプッシュします。

git push -u origin HEAD

これは、現在のブランチを同じ名前のブランチにプッシュして追跡し、将来origin指定する必要がないようにするためのショートカットです。origin HEAD

于 2014-02-24T14:58:49.297 に答える
74

現在のブランチからブランチを作成する場合

git checkout -b {your_local_branch_name}

リモートブランチからのブランチが必要な場合は、試すことができます

git checkout -b {your_local_branch_name} origin/<remote_branch_name>

変更が完了したら、ファイルを追加できます。

git add -A or git add <each_file_names>

次に、ローカルでコミットします

git commit -m 'your commit message'

リモートリポジトリにプッシュしたいとき

git push -u origin <your_local_branch_name>

すべて一緒になります

git checkout -b bug_fixes 

またはbug_fixesリモートブランチからローカルブランチを作成する場合は、次のように言います。development

git checkout -b bug_fixes origin/development

あなたはリモートリポジトリへのブランチにプッシュすることができます

git push -u origin bug_fixes

他のブランチからブランチを更新したいときはいつでもmaster

git pull origin master
于 2016-05-01T06:12:36.640 に答える
62

[素早い回答]

あなたは2つのステップでそれを行うことができます:

1.を使用しcheckoutて、ローカルブランチを作成します。

git checkout -b yourBranchName

2.コマンドを使用しpushてブランチを自動作成し、コードをリモートリポジトリに送信します。

git push -u origin yourBranchName

これを行うには複数の方法がありますが、この方法は本当に簡単だと思います。

于 2019-10-02T09:43:49.433 に答える
51

ローカルブランチを持たずに実際にリモートブランチを作成したい場合は、次のように行うことができます。

git push origin HEAD:refs/heads/foo

それはあなたのHEADがリモートに存在しなかった分岐fooに何でもプッシュします。

于 2015-11-25T15:29:39.337 に答える
35

最も簡単な解決策...ドラムロール... gitバージョン2.10.1(Apple Git-78)

1) git checkout -b localBranchNameThatDoesNotExistInRemote

2) Do your changes, and do a git commit 

3) git push origin localBranchNameThatDoesNotExistInRemote --force

注意-ローカル環境で作成したばかりのブランチと、プッシュしようとしているリモートの存在しないブランチは、同じ名前である必要があります

于 2017-03-18T06:23:35.433 に答える
29

まず、ローカルでブランチを作成します。

git checkout -b your_branch

次に、ブランチをリモートで作成します。

git push --set-upstream origin your_branch

注:これは、最新バージョンのgitで機能します。

$ git --version
git version 2.3.0

乾杯!

于 2015-04-21T23:43:46.303 に答える
20

ローカルマシンにブランチを作成し、このブランチに切り替えます。

$ git checkout -b [name_of_your_new_branch]

githubでブランチをプッシュします:

$ git push origin [name_of_your_new_branch]

ブランチで何かをコミットしたいときは、必ずブランチにいるようにしてください。

以下を使用して作成されたすべてのブランチを表示できます。

$ git branch

表示されます:

* approval_messages
  master
  master_clean

ブランチに新しいリモコンを追加します。

$ git remote add [name_of_your_remote] 

コミットからブランチに変更をプッシュします:

$ git push origin [name_of_your_remote]

公式リポジトリの元のブランチが更新されたら、ブランチを更新します。

$ git fetch [name_of_your_remote]

次に、変更をマージするために申請する必要があります。ブランチが開発から派生している場合は、次のことを行う必要があります。

$ git merge [name_of_your_remote]/develop

ローカルファイルシステムのブランチを削除します。

$ git branch -d [name_of_your_new_branch]

ファイルシステムのローカルブランチを強制的に削除するには:

$ git branch -D [name_of_your_new_branch]

githubのブランチを削除します:

$ git push origin :[name_of_your_new_branch]

ここにすべての情報

その他の既存プロジェクト

于 2016-05-27T11:39:29.630 に答える
15

既存のブランチからローカルブランチを作成します(マスター/開発/その他のブランチにすることができます)。

git checkout -b branch_name

これをリモートにプッシュ

git push -u remote_name local_branch_name:remote_branch_name

ここ、

  1. -u:アップストリームブランチを設定します
  2. remote_name:gitは、リポジトリを作成するときに、デフォルトで名前を「origin」に設定します。ただし、これは別の任意の名前に変更できます。
  3. local_branch_name:プッシュされるローカルブランチの名前です。
  4. remote_branch_name:リモートで作成するリモートブランチの名前です。

ローカルブランチ名とリモートブランチ名を削除すると、次の形式になります

git push -u remote_name branch_name

これにより、ローカルブランチがリモートにプッシュされ、ローカルブランチのbranch_nameと同じ名前になります。ローカルブランチはリモートブランチも追跡します。

于 2017-02-15T06:57:20.520 に答える
13

あなたは簡単にできます、

  1. git checkout -b YOUR-NEW-BRANCH-NAME
  2. git add .
  3. git push origin YOUR-NEW-BRANCH-NAME

関連するgitリポジトリの下のコードでブランチを見ることができます

乾杯 !!:)

于 2021-04-13T18:10:33.857 に答える
10

この質問には十分な回答があることはわかっていますが、新しいブランチ「myNewBranch」を作成してリモート(私の場合は「origin」)にプッシュし、追跡を設定するために実行する手順をリストしたいと思います。これを「TL;DR」バージョンと考えてください:)

# create new branch and checkout that branch
git checkout -b myNewBranch
# now push branch to remote 
git push origin myNewBranch
# set up the new branch to track remote branch from origin
git branch --set-upstream-to=origin/myNewBranch myNewBranch
于 2014-10-23T14:09:17.097 に答える
9

それを追加したかっただけです:

git checkout -b {branchName}

新しいブランチを作成し、そのブランチをチェックアウトして/現在のブランチにします。何らかの理由で、ブランチをスナップオフするだけで、現在のブランチにしない場合は、次のコマンドを使用します。

git branch {branchName}

最初のコマンドで、「checkout」はそのブランチを現在のブランチにします。「-b」は、このブランチがまだ存在しないことを意味します。

于 2015-03-30T14:02:24.327 に答える
8

gitを使用すると、正しいブランチにいるときに入力するだけで済みます

git push --set-upstream origin <remote-branch-name>>

そしてgitはあなたのためにoriginブランチを作成します。

于 2014-10-27T17:05:42.057 に答える
6

ソースツリーを介して行う方法

 1: Open SourceTree, click on Repository -> Checkout
 2: Click on Create New Branch
 3: Select the branch where you want to get code for new branch 
 4: Give your branch name
 5: Push the branch  (by click on Push-button)
于 2015-07-21T11:27:20.723 に答える
5

git push -u <remote-name> <branch-name>新しく作成されたブランチが同じリポジトリから生成されていない場合、つまり、を使用して新しいブランチを作成していない場合git checkout -b new_branch、これは機能しません。

たとえば、2つの異なるリポジトリをローカルで複製し、repo2 /branch1をrepo1/にコピーしてから、それもプッシュする必要がありました。

このリンクは、ローカルブランチ(別のリポジトリから複製されたもの)をリモートリポジトリにプッシュするのに役立ちました。

于 2014-02-24T21:38:11.733 に答える
4

Egitを介して日食でそれを行う方法は次のとおりです。

  1. [Gitリポジトリの探索]ビューに移動し、ブランチを作成するgitプロジェクトを展開します。[ブランチ]->[ローカル]で、ブランチを作成するブランチを選択します(私の場合、マスターを選択しました。必要に応じて別のブランチを選択できます)。次に、右クリックして[ブランチの作成]オプションをクリックします。このプロジェクトのチェックアウトオプションを選択し、[完了]ボタンをクリックします。

  2. 次に、プロジェクトエクスプローラーからプロジェクトを選択します。右クリックして[チーム]->[ブランチのプッシュ]を選択します。

新しいリモートブランチが作成されます。同僚が引っ張れるように、ブランチの名前を同僚に与えることができます。

于 2014-01-31T23:46:50.037 に答える
2

ブランチを作成するために2つの方法を使用しました

TortoiseGitを使用している場合は、次の手順に従ってください:-

1.TortoiseGitを使用してブランチを作成します

プロジェクトを右クリック>>>TortoiseGit>>>ブランチの作成>>>ブランチの名前を入力し、ベースブランチを選択して、[OK]を押します

2.ブランチをプッシュします

プロジェクトを右クリック>>>TortoiseGit>>>プッシュ>>>[OK]をクリックします

3.新しいブランチに切り替えます

プロジェクトを右クリック>>>TortoiseGit>>> Switch / Checkout >>>新しく作成されたブランチを選択し、[OK]を押します

コマンドプロンプトを使用している場合は、次の手順に従ってください。-

1.コマンドプロンプトを使用してブランチを作成します

$ git checkout -b new_branch_name

2.ブランチをプッシュします

$ git push origin new_branch_name

3.新しいブランチに切り替えます。すでにnew_branch_nameに切り替えられています。それ以外の場合は、

$ git checkout new_branch_name

于 2020-01-07T06:01:15.497 に答える
0

私はこれを使用し、それはかなり便利です:

git config --global alias.mkdir '!git checkout -b $1; git status; git push -u origin $1; exit;'

使用法:git mkdir NEW_BRANCH

gitステータスも必要ありません。多分、私はすべてがうまくいっていることを確認したいだけです...

1つのコマンドでLOCALブランチとREMOTEブランチの両方を持つことができます。

于 2019-07-24T07:31:34.700 に答える
0

私はこれを私のbashに追加することでこれを解決しました~/.profile

function gitb() { git checkout -b $1 && git push --set-upstream origin $1; }

次に、新しいローカル+リモートブランチを起動するために、次のように記述します。

gitb feature/mynewbranch

これにより、ブランチが作成され、最初のプッシュが実行されます。トラッキングを設定するだけでなく(後でgit pullgit push追加の引数なしで機能するように)、ターゲットリポジトリにそのようなブランチがまだ含まれていないことを実際に確認します。

于 2020-06-09T20:33:02.367 に答える
0

ここに例があります。最初にローカルであったブランチは、originとmobile-testの2つだけです。

これをコマンドラインで使用して、更新されたファイルをリモートブランチに実際に表示するまで、何も機能しませんでした。

git push --set-upstream origin mobile-test
于 2020-09-22T05:26:19.907 に答える
0

現在のブランチのクローンを作成したことがある場合は--single-branch、これを使用して、現在のブランチから新しいブランチを作成します。

git checkout -b <new-branch-name>
git push -u origin <new-branch-name>
git remote set-branches origin --add <new-branch-name>
git fetch
于 2020-09-29T10:21:45.603 に答える