20190625のGitに関する記事は10件です。

【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
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

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/ファイルパス2

Changes 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流れ毎に作成します。

 

 

リバート

データベースでいうロールバックみたいなもので
一度コミットされたものを破棄し、前の状態(バージョン)に戻す作業を、"リバートする" といいます。
 
 
 

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

偏差値40の未経験プログラミング学習.ver5

2019年6月25日(火)所要時間20分程度

〜学んだこと〜

そもそもGitで大事なこと。
共同開発する上で、自分が行った場所を「把握」して変更した場所だけを「選択」し共有すること。
把握に使う ※変更があれば赤色で表示
→git status

2019年6月26日(水)所要時間40分程度

〜学んだこと〜

変更内容の把握(※変更前のコードが赤色、変更後のコードが緑色)

→git diff

→git commit -m "修正"

コミットメッセージの確認

→git log

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

未経験からのプログラミング学習.ver5

2019年6月25日(火)所要時間20分程度

〜学んだこと〜

そもそもGitで大事なこと。
共同開発する上で、自分が行った場所を「把握」して変更した場所だけを「選択」し共有すること。
把握に使う ※変更があれば赤色で表示
→git status

2019年6月26日(水)所要時間40分程度

〜学んだこと〜

変更内容の把握(※変更前のコードが赤色、変更後のコードが緑色)

→git diff

→git commit -m "修正"

コミットメッセージの確認

→git log

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

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

Screen Shot 2019-06-25 at 7.31.05.png

  • コマンドラインから下記のコマンドを実行する。
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.
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【gitメモ】リモートブランチ をローカルブランチ へ

リモートブランチの確認の際毎回調べているのでメモ

#リモートブランチ名確認
$git branch -r
($ git branch -a でも確認可)

#リモートブランチと同じブランチをローカルに作成し、そこへ移動する
$ git checkout -b ローカルのブランチ名 origin/リモートのブランチ名
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【git】リモートブランチ をローカルブランチ へ

リモートブランチの確認の際毎回調べているのでメモ

#リモートブランチ名確認
$ git branch -r
($ git branch -a でも確認可)

#リモートブランチと同じブランチをローカルに作成し、そこへ移動する
$ git checkout -b ローカルのブランチ名 origin/リモートのブランチ名
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【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!

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【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
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【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のリモート追跡ブランチ」のことである

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む