Actions

Git: Difference between revisions

From Mintarc Forge

Makoto (talk | contribs)
Makoto (talk | contribs)
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/>
Line 46: Line 46:
この .git フォルダの中には実際にバージョン管理されているファイルの記録や変更点の記録が保存されていく。<br/>
この .git フォルダの中には実際にバージョン管理されているファイルの記録や変更点の記録が保存されていく。<br/>
※まだこの時点ではバージョン管理されていない<br/>
※まだこの時点ではバージョン管理されていない<br/>
<br/>
<br/>
====隠しフォルダも見えるようにする設定====
====隠しフォルダも見えるようにする設定====
作成したGitTestを開く<br/>
作成したGitTestを開く<br/>
1. 表示>表示>ファイル名拡張子 をON<br/>
1. 表示>表示>ファイル名拡張子 をON<br/>
2. 表示>表示>隠しファイル をON<br/>
2. 表示>表示>隠しファイル をON<br/>
<br/>
<br/>
<br/>



Revision as of 06:43, 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」しか存在してないので正常に削除できた。




<< ひよっこ書庫