Git: Difference between revisions
From Mintarc Forge
No edit summary |
|||
| (11 intermediate revisions by the same user not shown) | |||
| Line 7: | Line 7: | ||
参考にした動画:https://youtu.be/cyOTQzI2AFU?si=CJSALJrGVrLPr3co<br/> | 参考にした動画:https://youtu.be/cyOTQzI2AFU?si=CJSALJrGVrLPr3co<br/> | ||
VCcode、Git bashをインストールした。<br/> | VCcode、Git bashをインストールした。<br/> | ||
<br/> | |||
<br/> | |||
===あらかじめ=== | ===あらかじめ=== | ||
デスクトップにバージョン管理したいファイル(今回は「GitTest」)を作成しておいた<br/> | デスクトップにバージョン管理したいファイル(今回は「GitTest」)を作成しておいた<br/> | ||
もちろんファイルの場所はどこでも可<br/> | もちろんファイルの場所はどこでも可<br/> | ||
<br/> | |||
<br/> | |||
===ユーザー名設定(初期設定)=== | ===ユーザー名設定(初期設定)=== | ||
<pre style="border: 1px solid #ccd1d9; background-color: #f8f9fa; padding: 12px; border-radius: 4px; color: #333; font-family: monospace;"> | <pre style="border: 1px solid #ccd1d9; background-color: #f8f9fa; padding: 12px; border-radius: 4px; color: #333; font-family: monospace;"> | ||
$ git config --grobal user.name '任意の名前' | $ git config --grobal user.name '任意の名前' | ||
</pre><br/> | </pre><br/> | ||
<br/> | |||
===メールアドレス登録設定(初期設定)=== | ===メールアドレス登録設定(初期設定)=== | ||
<pre style="border: 1px solid #ccd1d9; background-color: #f8f9fa; padding: 12px; border-radius: 4px; color: #333; font-family: monospace;"> | <pre style="border: 1px solid #ccd1d9; background-color: #f8f9fa; padding: 12px; border-radius: 4px; color: #333; font-family: monospace;"> | ||
$ git config --grobal user.email メールアドレス | $ git config --grobal user.email メールアドレス | ||
</pre><br/> | </pre><br/> | ||
<br/> | |||
===GitTestへ移動(ディレクトリ移動)=== | ===GitTestへ移動(ディレクトリ移動)=== | ||
<pre style="border: 1px solid #ccd1d9; background-color: #f8f9fa; padding: 12px; border-radius: 4px; color: #333; font-family: monospace;"> | <pre style="border: 1px solid #ccd1d9; background-color: #f8f9fa; padding: 12px; border-radius: 4px; color: #333; font-family: monospace;"> | ||
$ cd /c/Users/makko/Desktop/GitTest | $ cd /c/Users/makko/Desktop/GitTest | ||
</pre><br/> | </pre><br/> | ||
<br/> | |||
===バージョンしていくファイルを作成=== | ===バージョンしていくファイルを作成=== | ||
GitTestフォルダ直下になにかしらのファイルを作成<br/> | GitTestフォルダ直下になにかしらのファイルを作成<br/> | ||
今回は「newFile」という名前のテキストファイルにした<br/> | 今回は「newFile」という名前のテキストファイルにした<br/> | ||
テキストファイル中に「これは新しいファイルです」と入力し、改行して上書き保存して×とじ<br/> | テキストファイル中に「これは新しいファイルです」と入力し、改行して上書き保存して×とじ<br/> | ||
<br/> | |||
<br/> | |||
===リポジトリに登録への道①~ワークツリーに登録~=== | ===リポジトリに登録への道①~ワークツリーに登録~=== | ||
'''ワークツリー''' → ステージング → リポジトリ<br/> | |||
「リポジトリ」に登録できたらバージョン管理ができる<br/> | 「リポジトリ」に登録できたらバージョン管理ができる<br/> | ||
<pre style="border: 1px solid #ccd1d9; background-color: #f8f9fa; padding: 12px; border-radius: 4px; color: #333; font-family: monospace;"> | <pre style="border: 1px solid #ccd1d9; background-color: #f8f9fa; padding: 12px; border-radius: 4px; color: #333; font-family: monospace;"> | ||
| Line 46: | Line 46: | ||
この .git フォルダの中には実際にバージョン管理されているファイルの記録や変更点の記録が保存されていく。<br/> | この .git フォルダの中には実際にバージョン管理されているファイルの記録や変更点の記録が保存されていく。<br/> | ||
※まだこの時点ではバージョン管理されていない<br/> | ※まだこの時点ではバージョン管理されていない<br/> | ||
<br/> | |||
====隠しフォルダも見えるようにする設定==== | ====隠しフォルダも見えるようにする設定==== | ||
作成したGitTestを開く<br/> | |||
1. 表示>表示>ファイル名拡張子 をON<br/> | |||
2. 表示>表示>隠しファイル をON<br/> | |||
<br/> | |||
<br/> | |||
<br/> | |||
==2026/05/26 Git bash== | ==2026/05/26 Git bash== | ||
参考にした動画:https://youtu.be/cyOTQzI2AFU?si=CJSALJrGVrLPr3co<br/> | 参考にした動画:https://youtu.be/cyOTQzI2AFU?si=CJSALJrGVrLPr3co<br/> | ||
5/21の続き。<br/> | 5/21の続き。<br/> | ||
<br/> | |||
<br/> | |||
===まずは GitTest フォルダに移動=== | ===まずは GitTest フォルダに移動=== | ||
<pre style="border: 1px solid #ccd1d9; background-color: #f8f9fa; padding: 12px; border-radius: 4px; color: #333; font-family: monospace;"> | <pre style="border: 1px solid #ccd1d9; background-color: #f8f9fa; padding: 12px; border-radius: 4px; color: #333; font-family: monospace;"> | ||
$ cd /c/Users/makko/Desktop/GitTest | $ cd /c/Users/makko/Desktop/GitTest | ||
</pre><br/> | </pre><br/> | ||
<br/> | |||
===リポジトリに登録への道②~newFileをステージングに追加~=== | ===リポジトリに登録への道②~newFileをステージングに追加~=== | ||
ワークツリー → '''ステージング''' → リポジトリ<br/> | |||
リポジトリに登録への道①ではまだ、ワークツリーに登録された状態<br/> | リポジトリに登録への道①ではまだ、ワークツリーに登録された状態<br/> | ||
<pre style="border: 1px solid #ccd1d9; background-color: #f8f9fa; padding: 12px; border-radius: 4px; color: #333; font-family: monospace;"> | <pre style="border: 1px solid #ccd1d9; background-color: #f8f9fa; padding: 12px; border-radius: 4px; color: #333; font-family: monospace;"> | ||
$ git add newFile.txt | $ git add newFile.txt | ||
</pre><br/> | </pre> | ||
※まだこの時点ではバージョン管理されていない<br/> | |||
<br/> | |||
<br/> | |||
===リポジトリに登録への道③~リポジトリに追加~=== | ===リポジトリに登録への道③~リポジトリに追加~=== | ||
ワークツリー → ステージング → '''リポジトリ'''<br/> | |||
リポジトリに登録への道②ではまだ、ステージングに登録された状態<br/> | |||
「リポジトリ」に登録できたらバージョン管理ができる<br/> | 「リポジトリ」に登録できたらバージョン管理ができる<br/> | ||
<pre style="border: 1px solid #ccd1d9; background-color: #f8f9fa; padding: 12px; border-radius: 4px; color: #333; font-family: monospace;"> | <pre style="border: 1px solid #ccd1d9; background-color: #f8f9fa; padding: 12px; border-radius: 4px; color: #333; font-family: monospace;"> | ||
| Line 79: | Line 82: | ||
-mのあとはどういう変更点を加えたのかわかるようにコメントを書く<br/> | -mのあとはどういう変更点を加えたのかわかるようにコメントを書く<br/> | ||
※これでバージョン管理ができる状態になった!<br/> | ※これでバージョン管理ができる状態になった!<br/> | ||
<br/> | |||
<br/> | |||
===nweFileに新しい行を追加してみる=== | ===nweFileに新しい行を追加してみる=== | ||
テキストファイル「newFile」を開いて、 | テキストファイル「newFile」を開いて、 | ||
| Line 97: | Line 100: | ||
「modified」と出てきているので<br/> | 「modified」と出てきているので<br/> | ||
newFileに対して何から変更が加わってるのが確認できる。<br/> | newFileに対して何から変更が加わってるのが確認できる。<br/> | ||
<br/> | |||
<br/> | |||
===ここで再度ステージング&リポジトリに書き込みを行う=== | ===ここで再度ステージング&リポジトリに書き込みを行う=== | ||
<br/> | <br/> | ||
| Line 112: | Line 115: | ||
これでnewFileに対する変更をさらに書き加えることに成功した。<br/> | これでnewFileに対する変更をさらに書き加えることに成功した。<br/> | ||
<br/> | |||
<br/> | |||
===これまでのコミット(変更点)を確認する=== | ===これまでのコミット(変更点)を確認する=== | ||
「git log」コマンドでこれまでどのようなコミットをしてきたのか確認する | 「git log」コマンドでこれまでどのようなコミットをしてきたのか確認する | ||
<pre style="border: 1px solid #ccd1d9; background-color: #f8f9fa; padding: 12px; border-radius: 4px; color: #333; font-family: monospace;"> | <pre style="border: 1px solid #ccd1d9; background-color: #f8f9fa; padding: 12px; border-radius: 4px; color: #333; font-family: monospace;"> | ||
| Line 131: | Line 133: | ||
初めてのコミット | 初めてのコミット | ||
</pre><br/> | </pre><br/> | ||
<br/> | |||
===ではここで=== | ===ではここで=== | ||
newFileを開いて「消される運命にある一行」と入力し,改行して上書き保存して×とじ<br/> | newFileを開いて「消される運命にある一行」と入力し,改行して上書き保存して×とじ<br/> | ||
| Line 147: | Line 149: | ||
</pre> | </pre> | ||
「+消される運命にある一行」この一行が追加されたことがわかる<br/> | 「+消される運命にある一行」この一行が追加されたことがわかる<br/> | ||
<br/> | |||
<br/> | |||
===やっぱり前のバージョンに戻したい!=== | ===やっぱり前のバージョンに戻したい!=== | ||
戻したいときは、ステージングとコミットをせず「git restore」をする | 戻したいときは、ステージングとコミットをせず「git restore」をする | ||
| Line 155: | Line 157: | ||
</pre> | </pre> | ||
実際にnewFileを開いてみると、「消される運命にある一行」が消えている<br/> | 実際にnewFileを開いてみると、「消される運命にある一行」が消えている<br/> | ||
<br/> | |||
<br/> | |||
===ブランチとは=== | ===ブランチとは=== | ||
枝分かれさせる<br/> | 枝分かれさせる<br/> | ||
大元を壊すことなく、枝分かれさせて、開発して、テストでうまくいけば大元に結合する。<br/> | 大元を壊すことなく、枝分かれさせて、開発して、テストでうまくいけば大元に結合する。<br/> | ||
原本ををコピってローカルでいじる的な。<br/> | 原本ををコピってローカルでいじる的な。<br/> | ||
<br/> | |||
<br/> | |||
===今ある&選択されているブランチを確認する=== | ===今ある&選択されているブランチを確認する=== | ||
<pre style="border: 1px solid #ccd1d9; background-color: #f8f9fa; padding: 12px; border-radius: 4px; color: #333; font-family: monospace;"> | <pre style="border: 1px solid #ccd1d9; background-color: #f8f9fa; padding: 12px; border-radius: 4px; color: #333; font-family: monospace;"> | ||
| Line 170: | Line 172: | ||
現在選択されているブランチは「master」である。そして<br/> | 現在選択されているブランチは「master」である。そして<br/> | ||
master以外のブランチは存在しないことがわかる<br/> | master以外のブランチは存在しないことがわかる<br/> | ||
<br/> | |||
<br/> | |||
===ブランチを作成する=== | ===ブランチを作成する=== | ||
「feature1」「feature2」二つのブランチをつくろう | 「feature1」「feature2」二つのブランチをつくろう | ||
| Line 178: | Line 180: | ||
$ git branch feature2 | $ git branch feature2 | ||
</pre><br/> | </pre><br/> | ||
<br/> | |||
===今ある&選択されているブランチを確認する=== | ===今ある&選択されているブランチを確認する=== | ||
<pre style="border: 1px solid #ccd1d9; background-color: #f8f9fa; padding: 12px; border-radius: 4px; color: #333; font-family: monospace;"> | <pre style="border: 1px solid #ccd1d9; background-color: #f8f9fa; padding: 12px; border-radius: 4px; color: #333; font-family: monospace;"> | ||
| Line 189: | Line 190: | ||
現在選択されているブランチは「master」である。そして<br/> | 現在選択されているブランチは「master」である。そして<br/> | ||
masterのほかに「feature1」「feature2」のブランチがあることがわかる<br/> | masterのほかに「feature1」「feature2」のブランチがあることがわかる<br/> | ||
<br/> | |||
<br/> | |||
===ブランチを切り替える=== | ===ブランチを切り替える=== | ||
<pre style="border: 1px solid #ccd1d9; background-color: #f8f9fa; padding: 12px; border-radius: 4px; color: #333; font-family: monospace;"> | <pre style="border: 1px solid #ccd1d9; background-color: #f8f9fa; padding: 12px; border-radius: 4px; color: #333; font-family: monospace;"> | ||
| Line 203: | Line 204: | ||
master | master | ||
</pre><br/> | </pre><br/> | ||
<br/> | |||
===feature1の状態でnewFile内に変更を加える=== | ===feature1の状態でnewFile内に変更を加える=== | ||
newFile内に「ブランチfeature1で行を追加」と入力し,改行して上書き保存して×とじ<br/> | newFile内に「ブランチfeature1で行を追加」と入力し,改行して上書き保存して×とじ<br/> | ||
<br/> | |||
<br/> | |||
===feature1の変更点をコミットまでする=== | ===feature1の変更点をコミットまでする=== | ||
<pre style="border: 1px solid #ccd1d9; background-color: #f8f9fa; padding: 12px; border-radius: 4px; color: #333; font-family: monospace;"> | <pre style="border: 1px solid #ccd1d9; background-color: #f8f9fa; padding: 12px; border-radius: 4px; color: #333; font-family: monospace;"> | ||
| Line 214: | Line 215: | ||
</pre> | </pre> | ||
(注意)この変更点はfeature1のブランチに対して"だけ"行われている<br/> | (注意)この変更点はfeature1のブランチに対して"だけ"行われている<br/> | ||
<br/> | |||
<br/> | |||
===feature1 → feature2に切り替え=== | ===feature1 → feature2に切り替え=== | ||
<pre style="border: 1px solid #ccd1d9; background-color: #f8f9fa; padding: 12px; border-radius: 4px; color: #333; font-family: monospace;"> | <pre style="border: 1px solid #ccd1d9; background-color: #f8f9fa; padding: 12px; border-radius: 4px; color: #333; font-family: monospace;"> | ||
$ git switch feature2 | $ git switch feature2 | ||
</pre><br/> | </pre><br/> | ||
<br/> | |||
===feature2の状態でnewFile内に変更を加える=== | ===feature2の状態でnewFile内に変更を加える=== | ||
newFileを開くと、先ほどの「feature1」での変更点は反映されていないことがわかる。<br/> | newFileを開くと、先ほどの「feature1」での変更点は反映されていないことがわかる。<br/> | ||
| Line 226: | Line 227: | ||
違う種類の変更も加えてみる。<br/> | 違う種類の変更も加えてみる。<br/> | ||
GitTestフォルダ直下に新しいテキストファイル「feature2file」を作成。<br/> | GitTestフォルダ直下に新しいテキストファイル「feature2file」を作成。<br/> | ||
<br/> | |||
<br/> | |||
===feature2の変更点をコミットまでする=== | ===feature2の変更点をコミットまでする=== | ||
<pre style="border: 1px solid #ccd1d9; background-color: #f8f9fa; padding: 12px; border-radius: 4px; color: #333; font-family: monospace;"> | <pre style="border: 1px solid #ccd1d9; background-color: #f8f9fa; padding: 12px; border-radius: 4px; color: #333; font-family: monospace;"> | ||
git add . | $ git add . | ||
$ git commit -m "feature2の変更点" | $ git commit -m "feature2の変更点" | ||
</pre><br/> | </pre><br/> | ||
<br/> | |||
===masterのブランチに戻って、どうなってるか見てみる=== | ===masterのブランチに戻って、どうなってるか見てみる=== | ||
<pre style="border: 1px solid #ccd1d9; background-color: #f8f9fa; padding: 12px; border-radius: 4px; color: #333; font-family: monospace;"> | <pre style="border: 1px solid #ccd1d9; background-color: #f8f9fa; padding: 12px; border-radius: 4px; color: #333; font-family: monospace;"> | ||
| Line 239: | Line 240: | ||
</pre> | </pre> | ||
nweFileの中身を見てみると、「feature1」「feature2」のどちらの変更点も反映されていないことがわかる。<br/> | nweFileの中身を見てみると、「feature1」「feature2」のどちらの変更点も反映されていないことがわかる。<br/> | ||
<br/> | |||
<br/> | |||
===マージとは=== | ===マージとは=== | ||
分岐させて行った作業を合体させる<br/> | 分岐させて行った作業を合体させる<br/> | ||
<br/> | |||
<br/> | |||
===feature1をmasterにマージ=== | ===feature1をmasterにマージ=== | ||
※マージするときはメインのブランチ(今回でいうとmaster)に居てること確認してから行う<br/> | ※マージするときはメインのブランチ(今回でいうとmaster)に居てること確認してから行う<br/> | ||
| Line 257: | Line 258: | ||
1 file changed, 1 insertion(+) | 1 file changed, 1 insertion(+) | ||
</pre><br/> | </pre><br/> | ||
<br/> | |||
===ここでnewFile中身を見てみると...=== | ===ここでnewFile中身を見てみると...=== | ||
3行目にfeature1の変更点が追記されている!<br/> | 3行目にfeature1の変更点が追記されている!<br/> | ||
<br/> | |||
<br/> | |||
===続いてfeature2をmasterにマージ=== | ===続いてfeature2をmasterにマージ=== | ||
<pre style="border: 1px solid #ccd1d9; background-color: #f8f9fa; padding: 12px; border-radius: 4px; color: #333; font-family: monospace;"> | <pre style="border: 1px solid #ccd1d9; background-color: #f8f9fa; padding: 12px; border-radius: 4px; color: #333; font-family: monospace;"> | ||
| Line 274: | Line 275: | ||
するとfeature1をマージした時とは違う結果になっている。<br/> | するとfeature1をマージした時とは違う結果になっている。<br/> | ||
なにかというと「CONFLICT」(=衝突)が起きている<br/> | なにかというと「CONFLICT」(=衝突)が起きている<br/> | ||
<br/> | |||
<br/> | |||
===「CONFLICT」(=衝突)=== | ===「CONFLICT」(=衝突)=== | ||
なぜかというと異なるブランチで「同じファイルの同じ行」を触ったから<br/> | なぜかというと異なるブランチで「同じファイルの同じ行」を触ったから<br/> | ||
どっちの変更点を優先すればよいのかわからず衝突を起こしている<br/> | どっちの変更点を優先すればよいのかわからず衝突を起こしている<br/> | ||
<br/> | |||
<br/> | |||
===どうするのか=== | ===どうするのか=== | ||
結論、手動でなおす<br/> | 結論、手動でなおす<br/> | ||
| Line 295: | Line 297: | ||
faeture2の変更点を優先したければ、feature1の変更点の部分を削除。あと不要な文字列も削除。これで上書き保存<br/> | faeture2の変更点を優先したければ、feature1の変更点の部分を削除。あと不要な文字列も削除。これで上書き保存<br/> | ||
ちなみに、「GitTest」フォルダ直下の「feature2file.txt」ファイルは衝突を起こしてないので普通に居る(faeture2の変更点が正常に反映されている)<br/> | ちなみに、「GitTest」フォルダ直下の「feature2file.txt」ファイルは衝突を起こしてないので普通に居る(faeture2の変更点が正常に反映されている)<br/> | ||
<br/> | |||
<br/> | |||
===最後に変更を記録する=== | ===最後に変更を記録する=== | ||
<pre style="border: 1px solid #ccd1d9; background-color: #f8f9fa; padding: 12px; border-radius: 4px; color: #333; font-family: monospace;"> | <pre style="border: 1px solid #ccd1d9; background-color: #f8f9fa; padding: 12px; border-radius: 4px; color: #333; font-family: monospace;"> | ||
| Line 303: | Line 305: | ||
</pre> | </pre> | ||
これで2つのブランチの統合が終わった。<br/> | これで2つのブランチの統合が終わった。<br/> | ||
<br/> | |||
<br/> | |||
===ブランチがまだ残っているよね=== | ===ブランチがまだ残っているよね=== | ||
見てみると | 見てみると | ||
| Line 313: | Line 315: | ||
* master | * master | ||
</pre><br/> | </pre><br/> | ||
<br/> | |||
===不要なブランチを消そう=== | ===不要なブランチを消そう=== | ||
<pre style="border: 1px solid #ccd1d9; background-color: #f8f9fa; padding: 12px; border-radius: 4px; color: #333; font-family: monospace;"> | <pre style="border: 1px solid #ccd1d9; background-color: #f8f9fa; padding: 12px; border-radius: 4px; color: #333; font-family: monospace;"> | ||
| Line 319: | Line 321: | ||
$ git branch -d feature2 | $ git branch -d feature2 | ||
</pre><br/> | </pre><br/> | ||
<br/> | |||
===feature1,feature2が消えたか確認=== | ===feature1,feature2が消えたか確認=== | ||
<pre style="border: 1px solid #ccd1d9; background-color: #f8f9fa; padding: 12px; border-radius: 4px; color: #333; font-family: monospace;"> | <pre style="border: 1px solid #ccd1d9; background-color: #f8f9fa; padding: 12px; border-radius: 4px; color: #333; font-family: monospace;"> | ||
| Line 326: | Line 328: | ||
</pre> | </pre> | ||
「master」しか存在してないので正常に削除できた。<br/> | 「master」しか存在してないので正常に削除できた。<br/> | ||
<br/> | |||
<br/> | |||
<br/> | |||
<br/> | |||
<br/> | |||
<br/> | |||
<br/> | |||
<< [[ひよっこ書庫]] | << [[ひよっこ書庫]] | ||
Latest revision as of 06:48, 3 June 2026
<< ひよっこ書庫
Gitに触れてみた記録
2026/05/21 Git bash
参考にした動画:https://youtu.be/cyOTQzI2AFU?si=CJSALJrGVrLPr3co
VCcode、Git bashをインストールした。
あらかじめ
デスクトップにバージョン管理したいファイル(今回は「GitTest」)を作成しておいた
もちろんファイルの場所はどこでも可
ユーザー名設定(初期設定)
$ git config --grobal user.name '任意の名前'
メールアドレス登録設定(初期設定)
$ git config --grobal user.email メールアドレス
GitTestへ移動(ディレクトリ移動)
$ cd /c/Users/makko/Desktop/GitTest
バージョンしていくファイルを作成
GitTestフォルダ直下になにかしらのファイルを作成
今回は「newFile」という名前のテキストファイルにした
テキストファイル中に「これは新しいファイルです」と入力し、改行して上書き保存して×とじ
リポジトリに登録への道①~ワークツリーに登録~
ワークツリー → ステージング → リポジトリ
「リポジトリ」に登録できたらバージョン管理ができる
$ git init
「この GitTest というファイルの中身をバージョン管理していきますよ」をこのコマンドにより知らせた。
実行したことで GitTest フォルダの中に .git という隠しフォルダが作られた。
(隠しフォルダも表示されるようにあらかじめ設定したので、今回は見えている)
この .git フォルダの中には実際にバージョン管理されているファイルの記録や変更点の記録が保存されていく。
※まだこの時点ではバージョン管理されていない
隠しフォルダも見えるようにする設定
作成したGitTestを開く
1. 表示>表示>ファイル名拡張子 をON
2. 表示>表示>隠しファイル をON
2026/05/26 Git bash
参考にした動画:https://youtu.be/cyOTQzI2AFU?si=CJSALJrGVrLPr3co
5/21の続き。
まずは GitTest フォルダに移動
$ cd /c/Users/makko/Desktop/GitTest
リポジトリに登録への道②~newFileをステージングに追加~
ワークツリー → ステージング → リポジトリ
リポジトリに登録への道①ではまだ、ワークツリーに登録された状態
$ git add newFile.txt
※まだこの時点ではバージョン管理されていない
リポジトリに登録への道③~リポジトリに追加~
ワークツリー → ステージング → リポジトリ
リポジトリに登録への道②ではまだ、ステージングに登録された状態
「リポジトリ」に登録できたらバージョン管理ができる
$ git commit -m "初めてのコミット"
-mのあとはどういう変更点を加えたのかわかるようにコメントを書く
※これでバージョン管理ができる状態になった!
nweFileに新しい行を追加してみる
テキストファイル「newFile」を開いて、
「新しい行を追加」と入力し、改行して上書き保存して×とじ。
git statusコマンドで状態を確認してみると...
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: newFile.txt
no changes added to commit (use "git add" and/or "git commit -a")
「modified」と出てきているので
newFileに対して何から変更が加わってるのが確認できる。
ここで再度ステージング&リポジトリに書き込みを行う
ステージング
$ git add .
リポジトリに書き込む(=コミットする)
$ git commit -m "新しい行の追加"
これでnewFileに対する変更をさらに書き加えることに成功した。
これまでのコミット(変更点)を確認する
「git log」コマンドでこれまでどのようなコミットをしてきたのか確認する
$ git log
commit c049436e84acc752b875fa98a629467d0b6ec321 (HEAD -> master)
Author: makoto <araheu15akim@gmail.com>
Date: Tue May 26 08:02:50 2026 +0900
新しい行の追加
commit 4aa851f08a6abf5ae22e956b377caaebac437166
Author: makoto <araheu15akim@gmail.com>
Date: Tue May 26 08:00:48 2026 +0900
初めてのコミット
ではここで
newFileを開いて「消される運命にある一行」と入力し,改行して上書き保存して×とじ
ステージングしてコミットする前に、そもそも前回自分が書き込んだ内容と、現在変更した内容との変更点(=差分)を確認してみよう
$ git diff diff --git a/newFile.txt b/newFile.txt index 1c90f50..7529f41 100644 --- a/newFile.txt +++ b/newFile.txt @@ -1,2 +1,3 @@ これは新しいファイルです 新しい行を追加 +消される運命にある一行
「+消される運命にある一行」この一行が追加されたことがわかる
やっぱり前のバージョンに戻したい!
戻したいときは、ステージングとコミットをせず「git restore」をする
$ git restore newFile.txt
実際にnewFileを開いてみると、「消される運命にある一行」が消えている
ブランチとは
枝分かれさせる
大元を壊すことなく、枝分かれさせて、開発して、テストでうまくいけば大元に結合する。
原本ををコピってローカルでいじる的な。
今ある&選択されているブランチを確認する
$ git branch * master
現在選択されているブランチは「master」である。そして
master以外のブランチは存在しないことがわかる
ブランチを作成する
「feature1」「feature2」二つのブランチをつくろう
$ git branch feature1 $ git branch feature2
今ある&選択されているブランチを確認する
$ git branch feature1 feature2 * master
現在選択されているブランチは「master」である。そして
masterのほかに「feature1」「feature2」のブランチがあることがわかる
ブランチを切り替える
$ git switch feature1
これで master → feature1 へ切り替わった。
念のため今いるブランチを見てみると...
$ git branch * feature1 feature2 master
feature1の状態でnewFile内に変更を加える
newFile内に「ブランチfeature1で行を追加」と入力し,改行して上書き保存して×とじ
feature1の変更点をコミットまでする
$ git add . $ git commit -m "feature1の変更点"
(注意)この変更点はfeature1のブランチに対して"だけ"行われている
feature1 → feature2に切り替え
$ git switch feature2
feature2の状態でnewFile内に変更を加える
newFileを開くと、先ほどの「feature1」での変更点は反映されていないことがわかる。
newFile内に「ブランチfeature2で行を追加」と入力し,改行して上書き保存して×とじ
違う種類の変更も加えてみる。
GitTestフォルダ直下に新しいテキストファイル「feature2file」を作成。
feature2の変更点をコミットまでする
$ git add . $ git commit -m "feature2の変更点"
masterのブランチに戻って、どうなってるか見てみる
$ git switch master
nweFileの中身を見てみると、「feature1」「feature2」のどちらの変更点も反映されていないことがわかる。
マージとは
分岐させて行った作業を合体させる
feature1をmasterにマージ
※マージするときはメインのブランチ(今回でいうとmaster)に居てること確認してから行う
$ git merge feature1
$ git merge feature1 Updating c049436..86960d3 Fast-forward newFile.txt | 1 + 1 file changed, 1 insertion(+)
ここでnewFile中身を見てみると...
3行目にfeature1の変更点が追記されている!
続いてfeature2をmasterにマージ
$ git merge feature2
$ git merge feature2 Auto-merging newFile.txt CONFLICT (content): Merge conflict in newFile.txt Automatic merge failed; fix conflicts and then commit the result.
するとfeature1をマージした時とは違う結果になっている。
なにかというと「CONFLICT」(=衝突)が起きている
「CONFLICT」(=衝突)
なぜかというと異なるブランチで「同じファイルの同じ行」を触ったから
どっちの変更点を優先すればよいのかわからず衝突を起こしている
どうするのか
結論、手動でなおす
newFile.txtの中身↓
これは新しいファイルです 新しい行を追加 <<<<<<< HEAD ブランチfeature1で行を追加 ======= ブランチfeature2で行を追加 >>>>>>> feature2
faeture2の変更点を優先したければ、feature1の変更点の部分を削除。あと不要な文字列も削除。これで上書き保存
ちなみに、「GitTest」フォルダ直下の「feature2file.txt」ファイルは衝突を起こしてないので普通に居る(faeture2の変更点が正常に反映されている)
最後に変更を記録する
$ git add . $ git commit -m "完成"
これで2つのブランチの統合が終わった。
ブランチがまだ残っているよね
見てみると
$ git branch feature1 feature2 * master
不要なブランチを消そう
$ git branch -d feature1 $ git branch -d feature2
feature1,feature2が消えたか確認
$ git branch * master
「master」しか存在してないので正常に削除できた。
<< ひよっこ書庫
