エディタを開くためのGitの使用


忙しい開発者として、中断は避けられない.
誰かが質問をし、我々はいくつかのコードを研究する必要がありますので、ファイルを開き、ブランチを切り替えるか、プロジェクトを変更すると、エディタの位置が失われます.
結局、混乱は終わります、そして、我々は我々が去ったところに戻りたいです.
確かに、我々は再検索することができますまたはクリックして、それらのファイルを再オープンし、タブを閉じます.
でも待ちます.別の方法がある😅
私たちはgit 履歴は、我々のエディタによって開かれるファイルを制御します.

修正ファイル
uncommitされた変更を持っているrepoに戻るとき、1つのショットのすべての変更を再オープンするのはよいでしょう.
The git ls-files コマンドは変更されたファイル名のリストを与えることができます.このコマンドは、--modified と新しいファイル--others . また、使用する良いアイデアだ--exclude-standard , ファイルをスキップする.gitignore .
> #...modify file1.js
> #...modify file2.js
> #...add file3.js
> git ls-files . --modified --others --exclude-standard
file1.js
file2.js
file3.js
修正されたファイルのリストで武装して、我々はセットアップをbashalias これらのファイルをエディタで開きます.
# ~/.bash_aliases

# for vim
# vim -O opens a split window
alias mods='vim -O $(git ls-files . --modified --exclude-standard --others)'

# for vscode
alias mods='code $(git ls-files . --modified --exclude-standard --others)'
今すぐタイプmods - そして、presto -あなたのエディタは、すべての変更されたファイルで開きます.✨

修正コミット
ブランチで作業するときは、最後のコミットに基づいて作業を継続するのが一般的です.たぶん、評論家はGithubで編集を提案しました.それはちょうど私たちがどこにいた最後のコミット権を再オープンするには素晴らしいことでしょう.
これは以前に行ったことと非常に似ていますが、今回はファイルリストが前のコミットから来ています.
私たちはgit diff-tree <sha> コミットからファイルリストを取得するコマンドです.我々は、名前が欲しいだけです--name-only とコミットIDを必要としない--no-commit-id , そして、最後のコミットからファイルが欲しいだけですHEAD ).
> git diff-tree --no-commit-id --name-only HEAD
file1.js
file2.js
前と同じように、我々はセットアップbashをすることができますalias ファイルリストをエディタに渡します.
# ~/.bash_aliases

# for vim
alias amend='vim -O $(git diff-tree --no-commit-id --name-only -r HEAD)'

# for vscode
alias amend='code $(git diff-tree --no-commit-id --name-only -r HEAD)'
今、あなたはタイプすることができますamend - とVoila -あなたは最後のコミットからファイルを編集している✨
ハッピーコーディング!