[随時更新]個人的に開発作業でよく使うgitコマンドの組み合わせ
こんにちは、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コマンド増えた場合には、タイトルの通り本記事も随時更新していきたいと思います。
参考
以上