■基本用語、コマンド動作など
- Repository(リモート/ローカル):用語
変更内容を記録するデータベース
- ワークツリー
.git で管理されているディレクトリ
- リポジトリ作成 git init
- カレントディレクトリ以下をリカーシブにリポジトリ管理に置くコマンド
- git add . <- . dot コマンド
- .gitがあるディレクトリで変更をリポジトリへ登録するコマンド
- git commit -m "Update message"
- ワークツリーとリポジトリ間の差分チェック(ワークツリーにあるファイルがコミットされているものとどのように異なるのかをチェックするため)
- git diff ←これで自動的に差分がファイルと差分内容が出力される
-
[diffの見方]
git diff upload.js
diff --git a/upload.js b/upload.js
index a2ed9d7..861eeca 100755 << -hash , and permission 755
--- a/upload.js <<- a/ staged file,
+++ b/upload.js <<- b/work tree file
@@ -24,7 +24,7 @@ window.addEventListener('load', () => { <<- from 24 row +7
const fd = new FormData($('f1')); // row24
const xhr = new XMLHttpRequest(); // row 25- xhr.open("POST", "/test_entry/upload/upload.php"); // row26 削除
+// xhr.open("POST", "/test_entry/upload/upload.php" xhr.open("POST", "upload.php"); // row27 追加
// Basic Events
xhr.addEventListener('load', (evt) => {
console.log('** xhr: load');
@@ -76,7 +76,7 @@ window.addEventListener('load', () => {
$('completion').innerHTML = "Successfully uploaded"
}); // row 76
pb(0); // row 77
- xhr.send(fd); // row 78 delete
+ xhr.send(fd); // row 78 add
■ワークツリー<ーー>ステージ(インデックス)<ーー>リポジトリ 差分検出
1 WT(file変更) git diff で WTとSTGの差分ありをチェック 差分あり
git diff --stagedでSTGとRPSの差分をチェックして、差分なし
2 git add file でfileをSTGに登録
git diff でWTとSTGの差分が無くなったことが判明
git diff --staged STG/RPSにはまだ差分あり
3 git commit -m "message"で変更をリポジトリへ登録
git diff でWTとSTGの差分が無くなったことから変化なし
git diff --staged STG/RPSにも差分が無くなった
■ステージにcommitすべきファイルがあるかを確認する方法
git status
■git add, commitしてないワークツリー内ファイルの変更を元に戻す
つまり,リポジトリにある状態に戻す
git restore file_name
■ステージにあげたものを戻す restore
git restore --staged file_name <---この実行後はステージから降りるだけ
再度 git restore file_name <---この実行後にfile_name の修正も元に戻る
■ブランチ操作
元々masterというのが出来ている、'test'というブランチを作るには
git branch test
git branch コマンドで
*master
test
のように表示される
・作業ブランチの切り替え
git switch 'branch_name'で作業ブランチが切り替わる
注)切り替える度に自動で、ワークツリーの内容がそのブランチのファイル内容に置き換わる
・作業ブランチに他のブランチの修正内容を取り込む
git merge branch_name
⭐️コンフリクト
Auto-merging app.py
CONFLICT (content): Merge conflict in app.py
Automatic merge failed; fix conflicts and then commit the resul
■Gitの設定ファイルの種類と場所
a) /etc/gitconfig ----- 全ユーザを管理するsystem管理者なので通常考慮しなくて良い
b) ~/.gitconfig -----ログインユーザ管理対象
> git config --global [ENT]で確認可能
c) /Repository/.gitconfig 特定リポジトリ(ワークツリー)環境での管理
> git config --local -l リスト形式でconfigを表示
個別リポジトリ毎に設定を変更可能
>git config --local /--global -e でエディタ起動し修正可能
注)ローカルに設定がなくとも、グローバルの設定で包含される
■間違えて消してしまったファイルの復活
> git status [ENT] 実行時の下記メッセージでtemp.csvが削除されたことが分かる
On branch master
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
deleted: temp.csv
>git checkout -f temp.csv[ENT] 実行で index(staging area)から復活
Updated 1 path from the index
>git restore temp.csv[ENT] コマンドでも復活させられる