Git の覚え書き

Git の覚え書き
目次

Visual Studio Code(VS Code)では,Git の基本的な操作を GUI で行えます。例えば,リモートリポジトリを clone したり,ファイルの変更内容を commit したりする際にわざわざコマンドを打たずに済むので,大変便利です。

一方,少し複雑な操作をする場合,むしろコマンドラインから実行したほうが楽なこともあります。しかし,普段から VS Code の GUI で Git の操作をしているため,コマンドラインから実行する方法を碌に覚えておらず,毎回 Google 検索をする破目になってしまうのが悩みの種です。そこで,このページに自分が調べた Git の操作手順をまとめることにしました。いわば「私家版・Git リファレンス」というわけです。あくまでも自分用ですから,雑駁とした箇所の多さにつきましてはご容赦ください。

なお,このページに記載する際のルールとして,参考にしたページがあれば,そのリンクも併せて掲載することにします。

Zip ファイルとして出力する

git archive HEAD -o archive.zip

リポジトリの内容を zip 形式で書き出すコマンドです。上記の場合は,archive.zip という名前の zip ファイルが生成されます。この中には HEAD の内容だけが含まれている状態です。

参考

空のブランチを作成する

git switch --orphan Another
図 1 One と Another は,同一リポジトリ内のブランチでありながら,全く異なる歴史を歩む。
図 1 OneAnother は,同一リポジトリ内のブランチでありながら,全く異なる歴史を歩む。

git switch--orphan1 を付けることで Another という名の歴史的に独立したブランチが作られます。このため,GitHub では Another から他のブランチ(あるいはその逆)に対する pull request を作成できません。

参考

リポジトリ作成時にブランチ名を指定する

git init --initial-branch foo

リポジトリの作成時に --initial-branch を付けると,デフォルトのブランチ名を任意の文字列に変更できます。上記の場合だと,デフォルトのブランチ名が foo であるリポジトリを作成します。

参考

派生元のブランチの最新内容を取り込む

git merge Parent
図 2 Child の派生元である Parent の HEAD(X)と Child の HEAD(Y)を統合する。
図 2 Child の派生元である Parent の HEAD(X)と Child の HEAD(Y)を統合する。

上図に示すように,Parent から分岐した Child という名のブランチがあります。両者の commit が増えていくにつれ,一度 Parent の HEAD までの commit を Child に取り込みたいことがあるでしょう。このような場合に git merge を実行します。なお,状況によっては conflict が生じる可能性があり,要注意です。

参考

エラー「would clobber existing tag」を解決する

git fetch --tags -f

参考


  1. Cambridge Dictionary によると,orphan は「a child whose parents are dead(親を亡くした子供。孤児)」という意味です。また,「to make someone an orphan(ある人を孤独な状態にする)」という意味の動詞として用いるとも記されています。 ↩︎