web-dev-qa-db-ja.com

リモートのGitブランチをどこのように作成しますか?

私は上流に 'プッシュ'したいローカルブランチを作成しました。新しく作成されたリモートブランチをどのように追跡するかについては、スタックオーバーフローについても同様の質問があります。

しかし、私のワークフローは少し異なります。 Firstローカルブランチを作成したいのですが、満足してブランチを共有したいときにだけ上流にプッシュします。

  • どうすればいいの? (私のグーグル検索は何も思いつかないようでした)。
  • 私の同僚に上流のリポジトリからそれを引き出すようにどうすればいいですか?

Git 2.0ではもっと簡単な答えがあります私は以下のように書いています: https://stackoverflow.com/a/27185855/109305

2900

シンプルGit 2.0以上のソリューション:

Git 2.0では、振る舞いはより簡単になりました

生活を楽にするためにPush.default = currentでgitを設定することができます。

これを追加したので、新しいブランチを上流にプッシュすることができます。

$ git Push -u

-uは同じ名前のリモートブランチを追跡します。今この設定であなたはgit Pushへのリモートリファレンスを自動推測します。 git.configのドキュメントから

Push.default

Refspecが明示的に指定されていない場合にgit Pushが取るべきアクションを定義します。

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

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

私はこの質問を知っていますし、受け入れられた答えはかなり古くなっていますが、動作が変更されたため、ワークフローをより簡単にするための設定オプションが追加されました。

グローバルGit設定に追加するには、コマンドラインでこれを実行します。

$ git config --global Push.default current
289

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

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

リモートブランチは、リモートサーバーにプッシュすると自動的に作成されます。それであなたがそれの準備ができていると感じるとき、あなたはただすることができます:

git Push <remote-name> <branch-name> 

<remote-name>が通常Originであるところでは、gitがあなたがクローンしたリモートに与える名前です。同僚はそのブランチを引っ張るだけで、自動的にローカルに作成されます。

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

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

しかし、どちらかを省略すると、両方のブランチ名が同じであると見なされます。 注意 の言葉として、これを言っても、(コロン付きで):<remote-branch-name>だけを指定するという重大なミスをしないでください。そうしないと、リモートブランチは削除されます。

それで、その後のgit pullが何をすべきかを知るために、代わりにあなたが使うかもしれません:

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

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

最新のブランチやプッシュが成功したブランチごとに、引数のないgit-pull(1)や他のコマンドで使用されるアップストリーム(トラッキング)参照を追加します。

3517
Ikke

まず、ブランチをローカルに作成しなければなりません

git checkout -b your_branch

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

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

あるいはgit Pushの引数を避けるためにブランチを追跡する

git checkout --track -b your_branch Origin/your_branch
... work ...
git commit
... work ...
git commit
git Push
834
dseminara

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

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

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

あなたの同僚は、このコマンドで(新しいものを含む)すべてのリモートブランチを引っ張ることができます。

git remote update

それから、ブランチに変更を加えるために、通常の流れ:

git checkout -b <local-branch-name> <remote-name>/<remote-branch-name>
72
Lucian

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

git checkout -b newbranch

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

git Push -u Origin HEAD

これは、現在のブランチをOrigin上の同じ名前のブランチにプッシュして追跡するためのショートカットで、将来的にOrigin HEADを指定する必要はありません。

57
Zenexer

もしあなたが実際にローカルブランチを持たずにリモートブランチを作成したいだけなら、このようにすることができます。

git Push Origin HEAD:refs/heads/foo

それはあなたのHEADがリモートに存在しなかったものであればブランチ foo にプッシュします。

37
Tassadar

最も簡単な解決策...ドラムロール... git version 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

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

29
sapy

現在のブランチからブランチを作成したい場合

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 

またはリモートブランチからブランチを作成したい場合は、 development としてください。

git checkout -b bug_fixes Origin / 開発

次のようにして、リモートリポジトリへのブランチにプッシュできます。

git Push -u Origin bug_fixes

他のブランチからブランチを更新したいときはいつでも master と言ってください。

git pull Origin master

27
sreekumar

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

git checkout -b your_branch

それからブランチをリモートで作成します。

git Push --set-upstream Origin your_branch

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

$ git --version
git version 2.3.0

乾杯!

22
ipegasus

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

$ 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]

あなたのブランチがDevelopから派生したものである場合は、変更をマージするように申請する必要があります。

$ 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]

ここにすべての情報

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

16
Numan Turkeri

既存のブランチからローカルブランチを作成します(master/development/any-other-branch)。

git checkout -b branch_name

これをリモコンにプッシュ

git Push -u <リモート名> <ローカルブランチ名>:<リモートブランチ名>

ここに、

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

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

git Push -u remote_nameブランチ名

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

11
iosCurator

私はこの質問がよく答えられていることを知っていますが、新しいブランチ "myNewBranch"とPush to remote(私の場合は "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
8
sufinawaz

Gitを使えば、正しいブランチに入ったときに、ただ入力することができます。

git Push --set-upstream Origin <remote-branch-name>

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

8

ちょっとそれを加えたかっただけです:

git checkout -b {branchName}

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

git branch {branchName}

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

6
Brian Sachetta

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

 1: Open SourceTree, click on Repository -> Checkout
 2 :Click on Create New Branch
 3: Select branch where from you want to get code for new branch 
 4: Give your branch name
 5: Push the branch  (by click on Push button)
5
Monis Majeed

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

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

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

5
brokenfoot

これがEclipseでEgitを使って行う方法です。

1) "Git Repository Exploring"ビューに行き、ブランチを作成したいgitプロジェクトを説明してください。 [ブランチ] - > [ローカル]の下で、ブランチを作成したいブランチを選択し(私の場合はマスターを選択しました。必要に応じて別のブランチを選択できます)。そして、このプロジェクトのチェックアウトオプションを選択してから、終了ボタンをクリックします。

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

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

3
user2225713

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

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の両方のブランチを作成できます。

0
Tarik