1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Git】初学者向け なんとなく使っているpushの挙動を確認してみた。

Posted at

#はじめに
Gitでの共同開発の中でpushでミスった経験からしっかりpushの挙動を確認してみました。

#対象者
pushは使っているけど、実際にどんなことをしているのかあまりわかっていない方。

#実際に試した内容

testディレクトリに空のindex.htmlファイルがあるとする。

ローカルブランチは下記だとする。
master
hoge
fuga

hogeブランチにはindex.htmlに「hogehoge」と入力してコミット
fugaブランチにはindex.htmlに「fugafuga」と入力してコミット

###実験1
今いるブランチ以外のブランチをpushできるか?

master
*hoge
fuga
hogeブランチで
$ git push origin fuga を実行。

###検証結果
pushされたのは「fugafuga」と書かれたindex.html
つまり、hogeブランチでpushしたがfugaブランチの内容がpushされた。

###実験2
ローカルブランチ名以外でpushできるか?

次にfugaブランチに移動。
master
hoge
*fuga

$ git push origin hogehoge を実行。

###検証結果

$ git push origin hogehoge
error: src refspec hogehoge does not match any
error: failed to push some refs to リモートリポジトリ名
となった。

つまり存在しないブランチをpushしようとしたのでエラーが表示された。

#結論
以上の結果からpushの挙動は以下のこととなる。
・カレントブランチがどこにいても他のブランチの内容をpushできる。
・しかしローカルブランチ名が一致しないとエラーが返ってくる。
・どこのブランチでpushを実行するかは関係なく、ローカルブランチ名が存在すれば、そのローカルブランチがpushされる。

#補足

@yonceさんが書かれているこちらの記事が非常にわかりやすいので、ぜひ参考にしてみてください。
https://qiita.com/yonce/items/b09f35ab301befde7803

$ git push origin master 普段pushする時に使っていたこの書き方は
$ git push origin <PUSHしたいローカルブランチ名>:<PUSH先リモートブランチ名>の省略形だったんですね。
pushしたいローカルブランチ名とリモートブランチ名を一緒にする場合は省略できるんです。

反対に別名でpushしたい場合は、:の後を任意の名前にすればOKです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?