GitHub 使い方 ブランチについて

GitHub 使い方 ブランチについて

 

確認環境:

Windows 10

git version 2.9.0.windows.1

 

GitHubのブランチについてメモしておきます。

 

ブランチ操作

git branch:ローカルリポジトリに存在するブランチの一覧を表示

先頭に*(アスタリスク)が付いているのが、現在のブランチ

git branch [ブランチ名]:ブランチを作成する

git checkout [ブランチ名]:ブランチを切り替える

git checkout -b [ブランチ名]:ブランチの作成とブランチの切り替えをいっぺんにやる

git push origin [ブランチ名]:ローカルのブランチをリモートへ反映する

git merge [ブランチ名]:ブランチをマージする

マージの前に、git checkout [ブランチ名]でマージしたいブランチに移動してから実行すること

git branch -d [ブランチ名]:ローカルブランチを削除する

 

git branch –remote:リモートリポジトリに存在するブランチの一覧を表示

git branch –all:ローカルとリモートリポジトリに存在する全てのブランチの一覧を表示

git push –delete origin [ブランチ名]:リモートブランチを削除する

 

GitHub 使い方 コミットの取り消しについて

GitHub 使い方 コミットの取り消しについて

 

確認環境:

Windows 10

git version 2.9.0.windows.1

 

GitHubで最もよく使うコミットの取り消しについてメモしておきます。

 

HEADについて

HEADとは、現在使用しているブランチの一番先頭をあらわす。

~(チルダー):HEADから何世代前かを指定する

^(キャレット):ブランチが複数ある場合、何番目の親かを指定する

 

指定例:

・HEAD~1:HEADから1世代前を指定

・HEAD~3:HEADから3世代前を指定

・HEAD~1^2:ブランチ2のHEADから1世代前を指定

 

コミットの履歴を表示する

コミットの履歴を表示するには git log

 

コミットを取り消しのバリエーション

・git revert:コミットを指定の時点の状態まで戻すに

(指定の時点に遡り、その状態が新たに追加コミットされる)

指定例:

git revert HEAD~1:直前のコミット(1世代前)の状態まで戻す

git revert HEAD~2:2世代前の状態まで戻す

 

・git reset –hard:コミットを取り消す(消去)

(指定の時点のコミットが消去される)

指定例:

git reset –hard HEAD~1:直前のコミット(1世代前)を取り消す(消去)

git reset –hard HEAD~2:2世代前を取り消す(消去)

 

・git reset –soft:コミットの履歴のみを取り消す(消去)

(履歴は消去されますが、ローカルリポジトリの内容は消去されない点に注意)

指定例:

 

・git rebase -i:pushした後、リモートリポジトリのコミットを取り消す(消去)

このコマンドを実行すると、エディタが開きます。

内容は以下のような内容です。

このエディタの1行目の先頭の「pick」の文字を「drop」に書き換えて保存し終了します。

この後、コマンドプロンプトで

「Successfully rebased and updated refs/heads/master.」

と表示されることを確認します。

この後、git push -f origin master でリモートリポジトリを強制的に書き換えします。

(git push origin master はエラーになります。)

指定例:

git rebase -i HEAD~1:直前のリモートリポジトリのコミットを(1世代前)を取り消す(消去)

git revert HEAD~2:2世代前のリモートリポジトリのコミットを取り消す(消去)

 

・git commit –amend:直前のコミットに上書きする

 

 

GitHub 使い方 競合について

GitHub 使い方 競合(conflict) について

 

確認環境:

Windows 10

git version 2.9.0.windows.1

 

GitHubの競合(conflict)についてメモしておきます。

 

GitHubにすでにリモートリポジトリがある状態で

リモートリポジトリをクローンするには git clone [リモートリポジトリのパス]

リモートリポジトリをプルするには git pull origin master

(プル pull = fetch + marge)

 

リモートリポジトリの競合について

1.AさんがファイルXを1という内容に編集しCommit

2.BさんがファイルXを2という内容に編集しCommit

3.Aさんが ファイルX1をリモートリポジトリに push

4.Bさんが ファイルX2をリモートリポジトリに pushしようとするとエラー(競合が発生)

5.Bさんは git pull する。

(ここで1.のAさんのコミット内容X1と2.のBさんのコミット内容X2がマージされる)

6.Bさんは git add . する。

7.Bさんは git commit する。X1 + 2

8.Bさんは git push する。(push成功)

この時のリモートリポジトリの履歴は、

1.のAさんのコミット内容X1

2.のBさんのコミット内容X2

7.のBさんのコミット内容X1 +2(1.と2.のマージ結果)が表示されます。

 

コミットの履歴を表示する

コミットの履歴を表示するには git log

 

GitHub 使い方 初心者向け

GitHub 使い方 初心者向け

 

確認環境:

Windows 10

git version 2.9.0.windows.1

 

GitHubの基本的な使い方をメモしておきます。

 

GitHubとは

GitHubとは、ソフトウェア開発のためのソースコード管理サービスです。

開発中のソフトウェアのバージョン管理を行います。

 

前提として

GitHubを使う前提として知っておくこと

リポジトリ Repository:ソースコード管理するファイルやフォルダのまとまり

ローカルリポジトリ Local Repository:自分のPCのリポジトリ

リモートリポジトリ Remote Repository:GitHub(サーバー)のリポジトリ

コミット Commit:ローカルリポジトリでファイルの内容の変更やファイルの追加、ファイルの削除をリポジトリに保存すること

プッシュ Push:ローカルリポジトリのコミット内容をリモートリポジトリに反映させること

ブランチ Branch:GitHubは開発の履歴を平行管理できるように本流から支流を作ることができるが、本流、支流のこと。

最初は本流しかなく、masterとなる。必要に応じて支流のブランチを作成する。

 

最初にやること

GitHub にアカウントを新規作成する。

・GitHub で New repository で新しくリポジトリを作っておく(リモートリポジトリを新規作成しておく)

・Windowsの場合、GitHub Desktop をインストールしておく。

・ローカルPCの適当な場所にフォルダを作る

・上記の場所に移動して、git init する。(ローカルリポジトリを新規作成)

 

その後、繰り返しやること

ファイルを追加したら git add [ファイル名]

コミットする時は git commit -m “コメントの内容”

リポジトリの状態を確認したい時は、 git status

リモートリポジトリの長いパス名をoriginという短縮名に設定する  git remote add origin [リモートリポジトリのパス]

(1回やっとけば、以降は push の時にパス名をoriginと指定できる)

(originという名前でなくてもOK。でも慣習的にoriginが使われる)

ローカルリポジトリのコミット内容をリモートリポジトリに反映したい時は git push origin master

 

git add のバリエーション

git add .  すべてのファイル・ディレクトリ

git add *.css すべてのCSSファイル

git add -n  追加されるファイルを調べる

git add -u  変更されたファイルを追加する

git rm –cached  addしてしまったファイルを除外

 

git commit のバリエーション

git commit -a  変更のあったファイルすべて

git commit -v  変更点を表示してコミット

git commit –amend  直前のコミットを取り消す

 

git remote のバリエーション

git remote -v リモートリポジトリの登録情報を確認する

git remote rm upstream リモートリポジトリの登録を取り消す

 

Git 基本コマンド

 

分散型バージョン管理システム Gitで使う基本的なコマンドをメモしておきます。

 

確認環境:

Max OS X El Capitan 10.11.2

git version 2.6.4

Xcode 7.3

Command Line Tools for Xcode 7.3

 

gitを使えるようにする準備:

macでGitを使えるようにするために、以下からインストールしておきます。

または、macのコマンドラインツールをインストールすれば、Gitも一緒にインストールされます。

(Apple IDが必要です。)

Apple DeveloperのDevelopに移動し Download を選択します。

その後、Apple ID を入力し、以下の画面に移動します。

コマンド入力が苦手な人は、こちらを使えば、GUIベースでバージョン管理ができます。

 

git 基本的な使い方:

Gitのコマンドは、macのターミナルから実行します。

 

ローカルにリポジトリを作成

ローカルにリポジトリを作成したい場所に移動して、以下のコマンドを実行

$ git init

$ git add *

$ git commit -m “コメントを入力してください”

 

Gitで管理しているファイルを編集したら、commit、pushを行いますが、

commitする前に、まずは、commitしたいファイルをaddしておきます。

git addすることを、インデックスに追加するとも言います。

ファイル名を指定する場合

$ git add [ファイル名]
ディレクトリ名を指定する場合

$ git add [ディレクトリ名]
.(ドット)を指定するとカレントディレクトリ以下のすべての変更がaddされます。

(git管理下のファイル全部)

$ git add .

 

addが完了したら、commit、pushを行います。

$ git commit -a -m “コメントを入力してください”

$ git push origin master

 

git addコマンドのバリエーション:

変更が加えられたファイルと、git管理外だったファイルを追加する

$ git add –all
すべてのhtmlファイルを追加する

$ git add *.html
変更されたファイルを追加する

$ git add -u
addしたファイルを除外

$ git rm –cached

 

git commitコマンドのバリエーション:

変更のあったファイルすべてをcommitする

vimエディターが開くので、コメントを入力します。

$ git commit -a
なお、コミットメッセージの書き方は、

1行目 概要を書く

2行目 空行にする

3行目 詳細な説明を書く
コメントを付けてcommitする。

こちらは、vimeエディターは開きません。

$ git commit -m “コメントを入力してください”
なお、

$ git commit -m “コメント1” -m “コメント2”
と入力すれば、

1行目 コメント1

2行目 空行

3行目 コメント2

となります。
直前のコミットを取り消す

$ git commit –amend
変更点を表示してコミット

$ git commit -v

 

git statusの見方:

gitのstatusを実行すると、

$ git status
編集後、add前、commit前は、このように表示されます。

On branch master

Changed but not updated:
add後、commit前は、このように表示されます。

On branch master

Your branch is up-to-date with ‘origin/master’.

Changes to be committed:
commit後、push origin master後は、このように表示されます。

On branch master

Your branch is up-to-date with ‘origin/master’.

nothing to commit, working directory clean

 

その他、よく使うコマンド:

commitの履歴を確認する

$ git log
commitの履歴を確認する

$ git reflog
commitの差分を確認する

$ git diff
gitのバージョンを確認する

$ git –version
gitのコミットログ編集用エディタをvimにする

$ git config –global core.editor ‘vim -c “set fenc=utf-8″‘