■Git
https://backlog.com/ja/git-tutorial/intro/01/
コマンドを使繧?ずに理解するGit - Qiita
Gitを使いこなしたい!〜仕組みとコマンド24選〜 - Qiita
[初心者向け]Git縺?GitHubの使い方を徹藹??解説 - Qiita
Gitのローカルリポジトリには臀??記がある
リモートブランチ (リポジトリ縺?origin ブランチ縺?master)
=== ↕ ===
ローカルリポジト繝?(上記縺?4つが含まれる)
┣リモート追跡ブランチ (リモートのコピーをローカルに置いている、git fetch、ブランチ縺?origin/master)
┣ローカルブランチ (git merge/pull、ブランチ縺?master)
┣インデック繧?(コミットデー繧? git commit)
┗ワーキングツリ繝? (実デー繧?)
ブランチの觸??要 #初心者 - Qiita
最もポピュラーなリモートリポジトリ名縺? 「origin」 にあるmaster
ローカルリポにあるリモート追跡ブランチでは「origin/master」
ローカルブランチでは「master」
origin master はリモート縺?originリポ縺?masterブランチを○○するという諢?蜻?
origin/master はローカルリポにあるリモート追跡ブランチを○○するという諢?蜻?
Gitクライアント、Sourcetree/TortoiseGit etc
ローカルリポジトリとリモートリポジトリを作りソース管理、通常別途で運用サーバにデプロ繧?
ローカルのリモート追跡ブランチ(リモートリポジトリのコピーをfetch)縺?
originという名がつきorigin/ブランチ名、リモート/ローカルのデフォブランチは両方通常縺?master
チェックアウトするとローカルの臀??業ソースの内容がその版に切り替繧?る
ワークツリー・??作業・??とインデックス・??中間)を持ちローカル臀??業をindex縺?addしcommit
バグ修正や機能追加などの異なる諢?味を持つ藹??更は、できるだけ分けてコミット
コメント 1行逶? : 変更内容の鐔??約 2行逶? : 空鐔?? 3行目以降 : 変更した理逕?
cloneで、リモートリポジトリの内容を丸々ローカルリポジトリとし縺?DL
Pullで、リモートリポジトリから最新の藹??更履歴をローカルリポジトリ縺?DL
Staged changes(index)に入れる → コメントを付記しCommitする
Pushしリモートリポジトリ縺?UPする(fast-forwardマージ・??
///ブランチ運用モデル https://backlog.com/ja/git-tutorial/stepup/05/
master(デフォ・??
hotfix
release
develop
feature
master縺?dvelopの・??つがメインブランチで大きな觸??れ
releaseブランチでリリースの調整、ブランチ名縺?release-をprefix
緊急修正の場合hotfixブランチで調整、hotfix-をprefix
featureブランチで觸??能追加しdevに軆??める
※もしUAT/QAサーバがあるならmaster/developに加えてもう一譛?QAブランチがあってもいい

使用・??ワークツリー・??のブランチを切り替えるにはチェックアウト
HEADとは現在使用しているブランチの先頭を表す(更新の先頭のイメー繧?)
stashでコミットしていない変更を退避させ、今すぐやりたい作業をしてから、退避させていた変更を藹??戻して臀??業を再開することができる(変更があれ縺?commitするまでブランチを切り替えができない)
mergeは鐔??数のブランチを統合し両方の藹??更を藹??り込んだマージコミットが作成されます。masterブランチの先頭はそのコミットに移動。non fast-forwardを行うとブランチがそのまま觸??る
rebase縺?masterブランチの前に別ブランチの内容を付荳?する。先頭縺?masterブランチのままなので、mergeもする。トピックブランチに統合ブランチの最新のコードを藹??り込む場合縺?rebaseを使う。iオプションでコミット書觸??、入替、削除、統合の制御藹?? git pull --rebase
git pull 縺? git pull –rebase の違いって・??図を交えて説譏?します! – KRAY Inc.
git pull --rebaseをpushする前にやろうという話。 - Qiita
自分の臀??業中に元のブランチに藹??更がかかった場合、その藹??更を藹??り込ん縺?Pushする必要がある>マージかリベー繧? (リベースの方がツリーがきれい)
master ブランチ用縺?feat/20240727a の場合
git pull --rebase origin master
リモートリポジト繝? (origin) から指定されたブランチ (master) の最新の藹??更をもとにリベー繧?
git pull-rebase
カレントの臀??業ブランチがビ繝?インドなの縺?Pushできないためリベー繧?
git push
stgプランチ用縺?feat/20240727a-stg の場合(stgブランチから切った作業ブランチ、masterから切った作業ブランチをマージしている)
git pull-rebase origin staging は臀??要で臀??記のリベース分をマージする
git merge feat/20240727a
git push
ちなみに臀??記はデフォルトのま縺? git pull-rebase等のオプションで操作するのが良さそう
git config pull.rebase false #merge (the default strategy)
git config pull rebase true #rebase
git config pull.ff only #fast-forward only
Gitのマー繧?(pull)方藹??には、fast-forward & non-fast-forward縺?2種饅??
ffの早送りは自分の臀??業ブランチでの走行中に臀??の修正がな縺?先頭になる
デフォルトだ縺? merge なのか fast-forward なのか実行時に判譏?する
pullを実行してから次縺?pushをするまでの間に、ほかの人がpushをしてリモートリポジトリを更新してしまっていた場合、マージを行なって臀??の履歴での藹??更を藹??り込むまで自分縺?pushは拒否されます(競合)マージは自動統合を行うが同じ箇所の場合はエラー。解決をして自分でコミットする必要がある
fetchは単にリモートリポジトリの内容を確鐔??したいだけの時。ローカルに統合したい時縺?FETCH_HEADをマージするか、改め縺?pullを実行します
軽驥?タグと注釈付きタグ縺?2種饅??。軽驥?タグはローカルで臀??時的に使用。タグで驕?去に戻せる
amend:直前のコミットを修正
revert:指定したコミットを打ち觸??すコミット
reset:コミットを捨てる
変更したインデックスの状態を元に戻す(mixed)
最近のコミットを完全に無かったことにする(hard)
コミットだけを無かったことにする(soft)
cherry-pick:指定のコミットを現在のブランチに藹??り込む
merge縺?squashオプション・??該藹??ブランチの全コミットを一つのコミットに軆??めて統合
(競合は修正し縺?addし直したいが、、、)
fetchでエラーがあれ縺? git reset --hard HEAD で臀??業を藹??り消し
pullでエラーがあれ縺? git merge --abort 縺? git reset --hard HEAD でマージと臀??業藹??り消し
githubでマージエラーがあれ縺? git checkout kuso-sagyo > git pull origin master > 競合解觸??作讌? > git commit > git push origin HEAD
プルリクエスト https://backlog.com/ja/git-tutorial/pull-request/03/
機能追加や改修など臀??業内容をレビュー・マージ担当者やその臀??関臀??者に通知する
プッシュされたコミットは自動的にプルリクエスト上に藹??映
プルリクエストは臀??覧され未藹??了のプルリクエストを確鐔??しレビュー・マージ担当者は觸??れな縺?処理藹??
ソースコードの藹??更軆??所を繧?かりやすく表示、コメントのやり藹??り藹??
1[開発者] 作業対象のソースを clone また縺? pull
2[開発者] 作業用のブランチを作成
3[開発者] 機能追加、改修といった開発臀??讌?
4[開発者] 作業が完了したら push
5[開発者] プルリクエストを作成
6[レビュー・マージ担当者] 通知されたプルリクエストから変更を確鐔??しレビュ繝?
7[レビュー・マージ担当者] レビュー軆??果を判断し必要ならば開発者にフィードバッ繧?
8[レビュー・マージ担当者] レビューの軆??果、問題がない場合はマー繧?
9[レビュー・マージ担当者] レビューの軆??果、対藹??自臀??が不要となるなど、プルリクエスト自臀??が必要ない場合はクロー繧?
新しいver縺?Sourcetreeではインストールができなかった ver 2.6.10.0ならOK
https://www.sourcetreeapp.com/download-archives
IEは臀??手縺?動かず Chromeを使う こちらでもインスコはできなかったが
SSH鍵をputtyで https://webkaru.net/linux/putty-ssh-login-public-key/
データフォルダ縺?.gitフォルダがあるので別縺?GITクライアントでもデータフォルダをDDするだけ
文字化け縺?KB4074906では直らなかった、UTF8⇔Shift-jisでも直らん?
Virtualbox等縺?Linux環藹??でインストールが良いかも?
sudo apt-get install git だったか縺?
gitのバージョンを上げる
プロキシを引き継縺?ながら最譁?GITを藹??れるよう縺? ppaをリポジトリに追加
sudo -E add-apt-repository ppa:git-core/ppa
sudo apt update
sudo apt upgrade
git --version
====================
git init --bare --shared 空のリモートリポジトリ・??ワークツリーのない開発メンバー全員で使う共有のリポジトリ・??を作成
git remote add origin https://github.com/YY/XX.git リモートリポジトリに名前設藹??:git remote add [追加リモートリポジトリ名] [追加する場所リポジト繝?]
git remote -v リモートリポジトリの確認
git init 各人使用したいローカルディレクトリに移動しリポジト繝?(dir)縺?.gitを作成
git status 状態確鐔??
git clone https://github.com/YYYYYY/XXXXX.git リモートリポジトリのクローンをローカルに臀??成
※臀??成した場所縺?cdし実行、リポジトリのフォルダもできるのでローカル縺?/home/おまはん/repoで藹??行でよい
git clone ssh://user@hostname/path/to/repos GitHub逕?(鍵登録しssh)
git branch 移動できるブランチとカレントを表示
git branch -a ブランチの臀??覧を見る(リモート側・??)
git checkout master ローカルの使用ブランチを切譖?
git pull origin master リモートの該当ブランチをローカルの使用中のブランチに・??git pull=fetch+merge)
git fetch origin master リモートのデータをリモート追跡ブランチに藹??り込む(変更点を確鐔??
git merge origin/master リモート追跡ブランチにある変更点を藹??り込む
【Git基軆??】git push origin master縺?masterはローカ繝?/リモートどっちのこと・?? #Git - Qiita
git fetch origin master はリモート側のマスターブランチを差す
git push origin master はローカル側のマスターブランチを差す
ソー繧?:行き先 が本来だが行き先が省略されている
git checkout -b hotfix ブランチhotfixへ移動(-bをつける事でカレントから新鐔??にブランチを作成し移動)
git branch hotfix ブランチhotfixを作成(カレントから?
git checkout hotfix ローカルの使用ブランチを切り替え
窶?hotfixで修正する場合
git checkout a.txt 特藹??ファイルの藹??更を藹??り消す
git checkout . add前の未追跡編集ファイルの藹??り消し、作業を藹??消し別ブランチ切替ができるよう縺?
git clean -df . add前の未追跡新鐔??ファイルの藹??り消し
git reset HEAD . addを藹??り消し
gitでいろいろ藹??り消したい #Git - Qiita
git add a.txt 削除したファイルをaddでリポジトリから削髯?
git rm a.txt リポジトリから削除しディレクトリからも削髯?
git rm --cached a.txt リポジトリから削除するがディレクトリには觸??す
rm a.txt ディレクトリから削除、リポジトリには觸??す
git add -n . アドの対象を表示
git add . カレントdir以臀??の全てをIndex追加(危ない)
git add *.py ワイルドカード
git add a.txt ファイル追加
git add dirA ディレクトリ追加
git add -A 変更のあったすべ縺?git add --all
git reset . addを藹??消す
git diff --cached ステージン繧?(index追加)の内容確認
git commit ローカルレポ縺?indexをコミット、エディターが開縺?、iインサートモードで編集、ESC:wqで臀??存
git commit -a -m "comment" -aは藹??更点がある登録された全ファイ繝?
git log コマンドでコミットの履豁?
git show コミットした内容自臀??を確鐔??
git reset --soft HEAD^ コミットの藹??り消し
git cherry-pick _commit_id_ 他ブランチでコミットした内容をカレントブランチに適藹??
※コミットが済んでいないファイルが残っている状態縺? git checkout の別ブランチ作成や git merge 縺?masterにマージしない事
git reset --hard HEAD^ 直前のコミットを藹??消(hard縺?commit logが残らず、indexやworktreeもオプで戻せる、綺饅??だが競合?)
git reset --hard HEAD~2 数藹??で鐔??数コミット藹??消
git stash 退避・??git stash list 退避リスト
git revert コミットNo. 直前のコミットを藹??消す再コミットでチーム開発向き(戻したcommit logが残る)
→commit文を書かされるので臀??存し縺?git push
誤っ縺?masterで修正をし縺?pushしてしてしまったときにはこれ
git logでコミットIDをしらべ、git revert <commitID>、git push縺?master縺?pushしてしまう
git branch -vv 上流ブランチの名前を確鐔??
git config --get remote.origin.url リモートのリポジト繝?URLの確認
git pull --rebase origin master push前にリモート縺?masterの更新を藹??り込んでおけばコミットが綺饅??になる
git push リモートに同ブランチがあれば通るがなければ臀??縺?--set-upstreamでリモートに臀??る
git push --set-upstream origin hotfix push時にリモートに該当ブランチを作成
git push リポジトリ名 ローカルブランチ名:リモートブランチ名 が本譚?
リモートリポジトリのアクセス先がoriginという名前で省略設定されている
git push origin 20250101aaa:20250101aaa -> git push
これ以藹??の場合は通蟶?github等のリポジトリ側縺?PR先を変えるといいと思繧?れるが、、
git pushの藹??り消し縺?github上でブランチを削除すればよいのでは縺?
リモート縺?Pull Requestを作成
レビュアー縺?Pull Reqeustを確鐔??し問題なければリモートにマージする
hotfix等縺?Pull Requestをmasterにするが同時にそ縺?1度縺?pushをdevelopにもPull Requestする/マージも
プルリクエストでコンフリクトしたときの対処方觸??(備忘録・?? - Laravel学軆??蟶? (laraweb.net)
サーバーにデプロ繧?
git checkout master マスターブランチに移動
git pull マスターからデータを藹??る
デプロイ臀??業・??サーバにアップロード/terraform apply)
戻し(リバートバック・??用縺?PRを事前準備をしたい
空縺?addやcommitはできない
githubのコミットグラフで臀??要なコミット上縺?Revertボタンを押す縺?PRが作成される
戻す可能性がある場合縺?masterにマージせず作業ブランチ縺?Apply(下記リモートからデータ藹??得藹??照・??
ダメならmaster縺?Applyし直す、あるい縺?Revertボタンを押す
リモートからデータを藹??って縺?る
git branch -r リモート追跡ブランチの臀??隕?(pullしとけば出る)
git fetch origin darekanounko リモートにあるブランチを藹??得
git checkout darekanounko これで切り替えができる
なければ同名で臀??っ縺?pull? git checkout -b darekanounko > git pull これはダ繝?
git initの藹??消し
rm -rf .git 縺?git initした場所縺?.gitファイルを削髯?
gitの臀??り直し(最悪これで回蠕?)
rm -rf .git 縺?git initした場所縺?.gitファイルを削除し、改め縺? git clone
git branch -d hotfix/unco072 hotfixブランチを削髯? -dはマージ觸??みのもの、-Dで臀??でも削髯?
git push origin :hotfix/unco072 hotfixブランチをリモートから削髯?
git branch --merged マージしたブランチ一隕?
git branch --merged | egrep -v "\*|master|develop" マージしたブランチmaster/dev以藹??
git branch --merged | egrep -v "\*|master|develop" | xargs git branch -D それらを削髯?
git remote prune origin リモートで觸??されたブランチをローカル藹??映 prune余分な枝を落とす
git branch --format "%(refname:short) %(upstream:track)" ブランチ名とトラック状態を藹??得
git branch --format "%(refname:short) %(upstream:track)" | grep "\[gone\]" 削除された[gone]のみ藹??得
git branch --format "%(refname:short) %(upstream:track)" | grep "\[gone\]" | awk '{print $1}' | xargs -IXXX git branch -D XXX それらはリモートで削除されており削髯?
git stash clear スタッシュを消す
git gc ガーベージコレクショ繝?
よく使う お觸??除系 git 便利コマンド集 (foresta.me)
コンフリクト
コンフリクト縺?github縺?PRのマージボタンがあるあたりで鐔??れる
masterから修正ブランチを切り出しているの縺?stgブランチにマージしようとするとコンフリクトする
(masterには未だマージされていないが、stgには既にマージされているPR)
例え縺?
<<<< feat/kuso
kuso2 = dead
====
kuso = smells
github上縺?resolve conflictで更新を觸??ける縺?feat/kusoPRに藹??映され、DEV/STGだけでな縺?本番へも変更が觸??かってしまうため、DEV/STGから切りなおしfeatを合体させコンフリクト解觸??する
git checkout master
git pull
git switch stg
git pull
git switch -c feat/kuso-stg
git merge feat/kuso
コンフリクトを手修正
git add/commit/push (addがな縺?ても強藹??縺?pushすればよい?)
github縺?stgへ向け縺?PRを作成
元縺?stgへ縺?feat/kusoPRは却臀??する
git pull で臀??記エラ繝?
error: cannot lock ref 'refs/tags/v1.3.38': unable to resolve reference 'refs/tags/v1.3.38': reference broken
→cat .git/refs/tags/v1.3.38 .git内のことで対象を見る、GUIフォルダでも大臀??遨?
→rm .git/refs/tags/v1.3.38
→RMすると大概git pullができるようになっている
reference broken縺?git pullできな縺?なったときの対策 - Qiita
他の対応方觸??とし縺?
→rm -rf おまはんのリポジトリのフォルダ フォルダごと觸??す
→git clone https://やり直しなはれ クローンやり直す
→git checkout master > git pull > git checkout 飛んだbranch (事前縺?git pushで臀??存しとく)
not something we can merge のエラ繝?
ブランチ名のスペル入力間違い、あるいはローカルにないブランチ縺?master pull>該藹??ブランチ縺?checkoutしpull等が必要
.gitignoreという設藹??ファイルにデフォルトで対象藹??とするファイルを設藹??
.git/config を見るとど縺?URL縺?pushするか分かる
リポジトリが不要になったとき縺?.git dirを削除する。管理ファイ繝?(ワークツリーにないファイ繝?)が削除されワークツリーのファイルはそのまま影響がない
ローカルリポジトリで鐔??数のブランチがある場合、必要なブランチをチェックアウト後ワークツリーのファイルを別途保存してから削除することを勧める
リポジトリを作成し直したい場合縺?.git dirを削除してから改め縺?git initを実行
https://www.atmarkit.co.jp/ait/articles/2003/12/news010.html init
https://www.atmarkit.co.jp/ait/articles/2003/05/news006.html clone
https://www.atmarkit.co.jp/ait/articles/2003/06/news019.html pull
https://www.atmarkit.co.jp/ait/articles/2003/13/news031.html add
https://www.atmarkit.co.jp/ait/articles/2003/19/news018.html commit
git: git stashの使い譁? - Qiita
https://www.atmarkit.co.jp/ait/articles/2005/21/news023.html push
https://www.atmarkit.co.jp/ait/articles/2005/22/news028.html push衝突
https://www.atmarkit.co.jp/ait/articles/2004/24/news028.html checkout
https://www.atmarkit.co.jp/ait/articles/2004/30/news017.html checkout2
https://www.atmarkit.co.jp/ait/articles/2006/11/news025.html revert
https://www.atmarkit.co.jp/ait/articles/2007/01/news015.html revert2
https://www.atmarkit.co.jp/ait/articles/2007/10/news010.html revert3
https://www.atmarkit.co.jp/ait/articles/2007/27/news013.html reset
Git revert縺?resetについ縺? - Qiita
https://www.atmarkit.co.jp/ait/articles/2004/09/news018.html log
https://www.atmarkit.co.jp/ait/articles/2004/16/news025.html log2
https://www.atmarkit.co.jp/ait/articles/2004/17/news021.html show
https://www.atmarkit.co.jp/ait/articles/2004/23/news034.html show2
https://www.atmarkit.co.jp/ait/articles/2005/01/news024.html tag
https://www.atmarkit.co.jp/ait/articles/2005/07/news009.html tag2
https://www.atmarkit.co.jp/ait/articles/2005/08/news017.html remote
https://www.atmarkit.co.jp/ait/articles/2005/14/news025.html remote2
https://www.atmarkit.co.jp/ait/articles/2006/04/news022.html rm
https://www.atmarkit.co.jp/ait/articles/2006/05/news021.html rm2
https://www.atmarkit.co.jp/ait/articles/2006/12/news017.html mv
■ツー繝?
git :: bash プロンプトにブランチ名と臀??業ツリーの状態を表示する [Tipsというかメ繝?] (root-n.com)
home/.bashrcに追記、1行目が切れがちで注諢?