[随時更新]個人的に開発作業でよく使うgitコマンドの組み合わせ

個人的に開発作業でよく使うgitコマンドの組み合わせを整理したのでご紹介したいと思います。
2020.01.23

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、CX事業本部の若槻です。

個人的に開発作業でよく使うgitコマンドの組み合わせを整理したのでご紹介したいと思います。

gitコマンド組み合わせ

ローカルに未作成のリポジトリで初めて作業開始する

リモートリポジトリをローカルにクローン。

$ git clone https://github.com/<アカウント名>/<リポジトリ名>.git

リモートブランチからローカルブランチを作成。

$ cd <リポジトリのパス>
$ git checkout -b <ローカルブランチ名> origin/<リモートブランチ名>

リモートに作成済みかつローカルに未作成のブランチで作業開始する

リモートに作成されているブランチを確認。

$ git fetch
$ git branch -a

リモートブランチからローカルブランチを作成。

$ cd <リポジトリパス>
$ git checkout -b <ローカルブランチ名> origin/<リモートブランチ名>

ローカルに作成済みのブランチで作業開始する

作業をするローカルブランチをチェックアウト。

$ cd <リポジトリパス>
$ git checkout <ローカルブランチ名>

リモートリポジトリでの最新の変更をローカルブランチに反映。

$ git pull origin <ローカルブランチ名>

一部ファイルのローカルでの変更をgitに無視させる(gitの追跡非対象にする)

.gitignoreに変更を無視したいファイルを追記。

$ echo <file-want-to-ignore> >> .gitignore

ローカルでの変更をリモートに反映する

ファイルの変更状況を確認して、リモートに反映させたい変更をステージングに追加。

$ git status
$ git diff
$ git add <対象ファイル/ディレクトリ>

ステージングした変更をコミットしてリモートリポジトリにプッシュ。

$ git commit -m 'コミットメッセージ'
$ git push origin <ローカルブランチ名>

git pull実行時にローカルで未コミットの変更を保持する

事前に、ローカルでだけ保持したい変更以外の変更をすべてコミットしておきます。

ローカルでだけ保持したい変更をgit stashで退避させます。

$ git stash save

この状態でgit pullをします。

$ git pull origin master

退避させた変更をstashから戻します。このとき変更を退避させたファイルは競合状態となります。

$ git stash apply stash@{0}

競合した変更のうちstashから戻した方の変更を適用します。

$ git checkout --theirs .

git add で一旦ステージングして競合状態を解消し、git reset HEADでステージングを取り消します。

$ git add .
$ git reset HEAD

これでローカルで未コミットの変更を保持したままgit pullを行うことができました。

git pull実行時にローカルで未コミットの変更をリモートの変更で上書きする

未コミットの変更(hoge.txt)に対してチェックアウトを行い、ローカルでの最後のコミット内容を適用してローカルをクリーンにします。

$ git checkout hoge.txt

git pullを実行してリモートの変更で上書きします。

$ git pull origin master

これでローカルで未コミットの変更をリモートの変更で上書きすることができました。

おわりに

まだまだ開発エンジニア駆け出しなので使いこなせるgitコマンドは多くないです。今後使いこなせるGitコマンド増えた場合には、タイトルの通り本記事も随時更新していきたいと思います。

参考

以上