自分用にGitの基本コマンドまとめました。
前回の記事でクローンした場所(~/sample
)に移動します。
$ cd ~/sample
現在のいるブランチを確認
$ git branch * master
*
が付いている場所に現在います。
チェックアウト
ブランチを作成して、作成できているかを確認します。
その後チェックアウトします。
// 作成 $ git branch feature/init // 確認 $ git branch feature/init * master // ブランチが増えました。 // チェックアウト $ git checkout feature/init Switched to branch 'feature/init' // 確認 $ git branch * feature/init master // ブランチが移動しているのがわかります。git status
ファイルを追加・修正する
sample/
ディレクトリ配下に、いくつかファイルを作成してみます。
また、.gitignore
を少し変更しました。
変更した状態をみる
$ git status On branch feature/init Changes not staged for commit: (use "git add ..." to update what will be committed) (use "git checkout -- ..." to discard changes in working directory) modified: .gitignore Untracked files: (use "git add ..." to include in what will be committed) gulpfile.js package-lock.json package.json src/ no changes added to commit (use "git add" and/or "git commit -a")
modified
: 修正したファイルUntracked files
: 新規作成したファイル
変更点をみる
+
の部分が追加されたところです。
今回は追加しかしていないので、+
しか表示しれていませんが、変更したり、削除した行があれば、-
と表示されます。
$ git diff diff --git a/.gitignore b/.gitignore index 159f515..2f52cfc 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ *.css.map *.sass.map *.scss.map +/node_modules/ +.DS_Store
一括でステージにあげる
コミットする前に、コミットしたいファイルをまとめて、ステージングします。
$ git add . // ステージングされているか確認する $ git status On branch feature/init Changes to be committed: (use "git reset HEAD ..." to unstage) modified: .gitignore new file: gulpfile.js new file: package-lock.json new file: package.json new file: src/scss/style.scss
Changes to be committed:
の下に、緑色でファイルが表示されていたらOK。
ファイルひとつずつadd
する場合は、
$ git add .gitignore
ディレクトリごとadd
する場合は、
$ git add src/
ステージから下げる
一括で下げる時は、
$ git reset
ファイルひとつずつ下げる場合は、
$ git resest .gitignore
ディレクトリごと下げる場合は、
$ git resest src/
コミット
メッセージを二行入れてコミットしてみます。
$ git commit -m "init: gulp, base source codes" -m "gulpの環境と土台のソース準備"
コミットを戻す
直前のコミットを取り消す時は、HEAD^
をつける。
コミットといインデックスを戻して、ファイルの変更は残す時。
オプションをつけない時は、これが適用される。
$ git reset --mixed HEAD^
コミットだけを戻して、インデックス、ファイルの変更は残す時。
$ git reset --soft HEAD^
コミット、インデックス、ファイルの変更を戻す時。
--hard
はかなり強力なので、極力使わないようにしています。
$ git reset --hard HEAD^
今回は、ソフトを使ってみます。
$ git reset --soft HEAD^ $ git status On branch feature/init Changes to be committed: (use "git reset HEAD ..." to unstage) modified: .gitignore new file: gulpfile.js new file: package-lock.json new file: package.json new file: src/scss/style.scss
ログを見る
再度コメント付きでコミットし、確認してみます。
$ git log commit xxxxxxxx (HEAD -> feature/init) Author: [名前] Date: Mon Dec 21 16:13:41 2019 +0900 init: gulp, base source codes gulpの環境と土台のソース準備。
リモートへプッシュする
$ git push origin feature/init Enumerating objects: 34, done. Counting objects: 100% (34/34), done. Delta compression using up to 8 threads Compressing objects: 100% (26/26), done. Writing objects: 100% (32/32), 65.34 KiB | 4.36 MiB/s, done. Total 32 (delta 2), reused 0 (delta 0) remote: Resolving deltas: 100% (2/2), done. remote: remote: Create a pull request for 'feature/init' on GitHub by visiting: remote: https://github.com/sample/sample/pull/new/feature/init remote: To github.com.sub:sample/sample.git
Githubを開いて確認すると、ちゃんとプッシュされています。
マージする
ローカルマージする時は、コマンドで。
// マスターブランチに戻る $ git checkout master Switched to branch 'master' Your branch is up to date with 'origin/master'. // 今いるブランチに指定したブランチをマージします。 // masterにfeature/initをマージ $ git merge feature/init Updating xxxxxxx Fast-forward .gitignore | 2 + gulpfile.js | 72 ++ package-lock.json | 7070 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ package.json | 26 + src/scss/style.scss | 3 + 24 files changed, 7369 insertions(+) create mode 100644 gulpfile.js create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 src/scss/style.scss // ローカルでマージしたものをリモートにプッシュする $ git push origin master
ブランチを確認する
// ローカルのブランチを確認する $ git branch feature/init * master // リモートのブランチを確認する $ git branch --remote origin/HEAD -> origin/master origin/feature/init origin/master // ローカルリモートまとめて確認する $ git branch --all feature/init * master remotes/origin/HEAD -> origin/master origin/feature/init remotes/origin/master
ブランチを削除する
ローカルブランチを削除する
--delete
オプションは、HEADにマージしてあればを削除
-D
オプションは、マージしなくても強制的に削除
// 削除 $ git branch --delete feature/init Deleted branch feature/init (was xxxxx).
リモートのブランチを削除する
// 削除 $ git push --delete origin feature/init To github.com.sub:sample/sample.git - [deleted] feature/init
コメント