- 投稿日:2019-06-25T16:56:22+09:00
【git】git stashで作業内容を一時退避
作業中のブランチから別ブランチに移りたいときには、作業内容を一時退避することができる。
一時退避する$ git stash save #コメントを入れることも可能 $ git stash save "コメントを入れる"退避したものを元に戻す#stashした一覧を表示 $ git stash list #元に戻したいstashを指定(0番目の場合) $ git stash apply stash@{0}不要なstashを削除する#0番目の場合 $ git stash drop stash@{0} #全stashを削除 $ git stash clear
- 投稿日:2019-06-25T16:35:26+09:00
Git 初心者 プロジェクトでのブランチの利用方法
今回が初めてのQiita投稿になります。
プログラミングを始めてまだ、半年ほどなので何かと誤った認識をしているかもしれませんが、指摘をしていただければ勉強になりますので、ご指導ご鞭撻をおねがいします!
第一回目の投稿は、実際に会社でチーム開発を行う上で、使っているGitのコマンドと、チーム開発でのリモートブランチからローカルブランチに反映させ、コミットするまでの流れになります。
Gitってなんか難しいですよね。
僕も、まだあまり慣れておりません^^;ですが頑張ってお伝えしますので、暖かく見守ってください!
それでは早速流れのご説明を致します。作業はターミナルで行います!
1.現在のローカルブランチを確認
まずは、現在のローカルのブランチが何になっているかを確認するため、以下のコマンドを入力。
$ git branch * ブランチ名1 ブランチ名2*が現在のブランチになります。
2.リモートブランチをプルする
リモートブランチをローカルサーバー上に同期します。
$ git pull -p-p はプルのオプションで、サーバー側で消されたされたリモートブランチをローカルブランチに反映させてくれます。
-pを書かなかったら、手動で消さないといけなくなります。
3.リモートブランチをローカルブランチに設定
プルしたリモートブランチをローカルブランチに設定します。
$ git checkout 設定したいブランチ名
4.現在のローカルブランチを確認
$ git branch ブランチ名1 ブランチ名2 * 先ほど設定したブランチ名
5.ローカルにブランチを作成
ローカルのサーバーににブランチを作成します。
$ git checkout -b igit checkout -b 作成するブランチ名
6.現在のローカルブランチを確認
ブランチ名1 ブランチ名2 ブランチ名3 * 先ほど作成したブランチ名
7.差分を表示
割愛している部分に、+ と - でコードの差分を表示する
$ git diff //割愛ー 消した部分
+ 追加した部分
8.修正したファイルのコミット状況を確認
$ git status On branch ブランチ名 Changes to be committed: (use "git reset HEAD <file>..." to unstage) modified: src/components/ファイルパス1 Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: package-lock.json modified: src/modules/ファイルパス2Changes to be committed: のmodifiedはcommitがされた部分
Changes not staged for commit: のmodifiedはcommitがされていない部分
9.コミットにくっつける
$ git add src/components/ src/modules/ On branch insert_dummy_checkbox Changes to be committed: (use "git reset HEAD <file>..." to unstage) modified: src/components/ファイルパス1 modified: src/modules/ファイルパス2 Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) modified: package-lock.json※ modified: package-lock.json はコミットしないのでこのままでいいです。
10.コミットする
$ git commit -m "修正の種類 : コメント"・修正の種類は、事前にチームで決め、バックログなどに記録。
・コマンド入力後、コミットはプレコミット状態になります。
これは、ハスキーというプログラムがファイルのエラーがないかをチェックしています。
これが終わって初めてコミットが成功します。
問題があれば、ハスキーが何かしらを表示します。
11.コミット内容の確認
コミットが問題なく行われているか、中身を確認します。
$ git show
12.パッチファイルの作成
この項目に関しては、僕が初心者なのでパッチファイルを作成して、それを上司に確認してもらってからプッシュしているので、
不必要な方は、14の項目まで飛ばしてもらって大丈夫です。$ git show > ファイル名.patch・> は左の内容を右に吐き出すというコマンド。
・パッチファイルとは差分が記載されているファイル。
diff(差分)だけならdiffファイルでいいのですが、ファイルの中にgitの情報なども記載されているので、パッチファイルとなり、拡張子を.patch とします。
13.パッチファイルをローカルに反映
$ git apply 反映するパッチファイルのパス
14.コミットをプッシュする
最後はコミットをプッシュして終わりです。
$ git push origin リモートブランチ名
用語説明
リポジトリ
ファイルやディレクトリの状態を記録する場所
保存された状態は、内容の変更履歴として格納されています。
変更履歴を管理したいディレクトリをリポジトリの管理下に置くことで、そのディレクトリ内のファイルやディレクトリの変更履歴を記録することができます。
* リモートリポジトリ
専用のサーバに配置して複数人で共有するためのリポジトリです。
* ローカルリポジトリ
ユーザ一人ひとりが利用するために、自分の手元のマシン上に配置するリポジトリです。
ブランチ(branch)
訳すと 木の枝、支流 という意味
履歴の流れを分岐して記録していくためのもの
分岐したブランチは他のブランチの影響を受けないため、同じリポジトリ中で複数の変更を同時に進めていくことができます。
また、分岐したブランチは他のブランチと合流(マージ)することで、一つのブランチにまとめ直すことができます。チームのメンバーは、他のメンバーの作業の影響を受けないように、メインのブランチから自分の作業専用のブランチを作成します。
作業の終わったメンバーは、メインのブランチに自分のブランチの変更を取り込んでいく
このようにすることで、他のメンバーの作業による影響を受けることなく、自分の作業に取り込むことができます。
また、作業単位で履歴を残すことで、問題が発生した場合に原因となる変更箇所の調査や対策を行うことが容易になります。
masterブランチ
リポジトリに最初のコミットを行うと、Gitはmasterという名前のブランチを作成します。
そのため、以後のコミットはブランチを切り替えるまでmasterブランチに追加されていきます。
マージ
マージは1機能または、1流れ毎に作成します。
リバート
データベースでいうロールバックみたいなもので
一度コミットされたものを破棄し、前の状態(バージョン)に戻す作業を、"リバートする" といいます。
- 投稿日:2019-06-25T10:04:07+09:00
偏差値40の未経験プログラミング学習.ver5
2019年6月25日(火)所要時間20分程度
〜学んだこと〜
そもそもGitで大事なこと。
共同開発する上で、自分が行った場所を「把握」して変更した場所だけを「選択」し共有すること。
把握に使う ※変更があれば赤色で表示
→git status2019年6月26日(水)所要時間40分程度
〜学んだこと〜
変更内容の把握(※変更前のコードが赤色、変更後のコードが緑色)
→git diff
→git commit -m "修正"
コミットメッセージの確認
→git log
- 投稿日:2019-06-25T10:04:07+09:00
未経験からのプログラミング学習.ver5
2019年6月25日(火)所要時間20分程度
〜学んだこと〜
そもそもGitで大事なこと。
共同開発する上で、自分が行った場所を「把握」して変更した場所だけを「選択」し共有すること。
把握に使う ※変更があれば赤色で表示
→git status2019年6月26日(水)所要時間40分程度
〜学んだこと〜
変更内容の把握(※変更前のコードが赤色、変更後のコードが緑色)
→git diff
→git commit -m "修正"
コミットメッセージの確認
→git log
- 投稿日:2019-06-25T07:48:09+09:00
GitのデフォルトエディタをVisual Studio Codeに設定
目的
gitコマンドで使われるエディタをVisual Studio Codeに設定。
方法
- Visual Studio Codeで「command + shift + p」でコマンドパレットを開き下記を実行する。
※windowsの場合は「Ctrl+Shift+P 」でコマンドパレットを開く。
Shell Command: Install 'Code' command in path
- コマンドラインから下記のコマンドを実行する。
git config --global core.editor "code --wait"
- これでgit commitした際にVisual Studio Codeが起動すればOKです。
補足
最初にコマンドパレットでインストールせずに、gitのeditorにcodeを設定してcommitすると以下の様なエラーが出てました。
同じエラーが出てた方はぜひ試してみてください。error: There was a problem with the editor 'code'. Please supply the message using either -m or -F option.
- 投稿日:2019-06-25T03:40:01+09:00
【gitメモ】リモートブランチ をローカルブランチ へ
リモートブランチの確認の際毎回調べているのでメモ
#リモートブランチ名確認 $git branch -r ($ git branch -a でも確認可) #リモートブランチと同じブランチをローカルに作成し、そこへ移動する $ git checkout -b ローカルのブランチ名 origin/リモートのブランチ名
- 投稿日:2019-06-25T03:40:01+09:00
【git】リモートブランチ をローカルブランチ へ
リモートブランチの確認の際毎回調べているのでメモ
#リモートブランチ名確認 $ git branch -r ($ git branch -a でも確認可) #リモートブランチと同じブランチをローカルに作成し、そこへ移動する $ git checkout -b ローカルのブランチ名 origin/リモートのブランチ名
- 投稿日:2019-06-25T02:26:53+09:00
【git】コンフリクトしたときのgit rebaseでの処理
作業していたAブランチをpushしてリモートのfeatureにプルリクしようとしたところ、コンフリクト発生!
その際の手順をメモまずはローカルのfeatureブランチを最新の状態にする
#ローカルリポジトリのorigin featureを最新の状態に更新 $ git fetch origin feature #ワーキングディレクトリのfeatureブランチへrebase $ git rebase origin/feature続いて、Aブランチのコンフリクトを処理する
#featureから分岐するAブランチへ移動 $ git checkout Aブランチ #最新のfeatureからAブランチを分岐させる $ git rebase feature ------- コンフリクト発生!修正! -------- #修正後、まずaddする $ git add Aブランチのpath #rebaseの作業終了 $ git rebase --continueあとは、リモートのAブランチにpushすればOK!
- 投稿日:2019-06-25T02:26:53+09:00
【git】コンフリクトしたときの処理
作業していたAブランチをpushしてリモートのfeatureにプルリクしようとしたところ、コンフリクト発生!
その際の手順をメモまずはローカルのfeatureブランチを最新の状態にする
#ローカルリポジトリのorigin featureを最新の状態に更新 $ git fetch origin feature #ワーキングディレクトリのfeatureブランチへrebase $ git rebase origin/feature続いて、Aブランチのコンフリクトを処理する
#featureから分岐するAブランチへ移動 $ git checkout Aブランチ #最新のfeatureからAブランチを分岐させる $ git rebase feature ------- コンフリクト発生!修正! -------- #修正後、まずaddする $ git add Aブランチのpath #rebaseの作業終了 $ git rebase --continue ->引き続きコンフリクトしたらコンフリクト発生からの流れを繰り返すあとは、リモートのAブランチにpushすればOK!
※補足#rebaseをキャンセルする場合 $ git rebase --abort
- 投稿日:2019-06-25T01:38:08+09:00
【git】origin master と origin/masterの違い
git初心者がハマったところをメモ!
$ git fetch origin master $ git merge origin/master何故、fetchとmergeでスラッシュが付いたり付かなかったりするのか...
origin masterとは?
origin = デフォルトのリモートのリポジトリの名前
なので、「リモートのmasterブランチ」ということであるorigin/masterとは?
リモート追跡ブランチを差す
$ git branch -r
で確認できる。
リモート追跡ブランチは、リモートからfetchしてくる際に更新される。
なので、「masterのリモート追跡ブランチ」のことである