git基本設定
初期のディレクトり
Hello
- hello.rb
$git init 実行
※gitは隠しファイル(ls -aで見れる)
Hello
- hello.rb
- .git
- HEAD
- config(設定ファイル)
- などなど
ディレクトリ
$ ls -C .git
COMMIT_EDITMSG ORIG_HEAD hooks logs rr-cache
HEAD config index objects
MERGE_RR description info refs
- objects
変更した履歴?
- HEAD
最新の状態
基本コマンド
git add
git status
git commit -m "コミットメッセージ"
git checkout
git reset
git log
git log --pretty=oneline(commit の名前だけ見れる)
git log --pretty=oneline --max-count=2
git log --pretty=oneline --since='5 minutes ago'
git log --pretty=oneline --until='5 minutes ago'(編集時間でソート)
git log --pretty=oneline --author=<your name>(編集者でソート)
git log --pretty=oneline --all
gitconfigの設定
[alias]
co = checkout
ci = commit
st = status
br = branch
hist = log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short
type = cat-file -t
dump = cat-file -p
戻る
git checkout <hash>
git checkot master(これで戻れる。。。。)
hash値にgcした時のブランチを見ると。。。。
$ git branch
* (HEAD detached at ef8ce92)
master
addの取り消し
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: hello.rb(緑)
addから外す
$ git reset HEAD hello.rb
$ git status
On branch master
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: hello.rb(赤)
revert
commit 2b8bec385230a923f6d1866a61b5fa5919967969 (HEAD -> master)
Author: Awtanabe <panser098@gmail.com>
Date: Sun May 26 22:24:31 2019 +0900
Revert "for revert"
This reverts commit df9de155eedb95f08f083578d874d97a9918e6be.
commit df9de155eedb95f08f083578d874d97a9918e6be
Author: Awtanabe <panser098@gmail.com>
Date: Sun May 26 22:24:16 2019 +0900
for revert
※revertした履歴も残る!!
共同開発して勝手に消されたら困るもんね。
コミットの編集
git commit --amend -m "Add an author/email comment"
ファイルの場所を変更
git mv hello.rb lib
git つけるんだ
git をつけないと...
$ git status
On branch master
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
deleted: hello.rb
Untracked files:
(use "git add <file>..." to include in what will be committed)
lib/
hello.rbがdeleteされて
libのデレクトダケができる
ちゃんとやると
$ git mv hello.rb lib/
watanabeakifumi-no-MacBook-Air:hello watanabeakifumi$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
renamed: hello.rb -> lib/hello.rb
Raketaskの実行
Rakefile(ファイル名)
# !/usr/bin/ruby -wKU
task :default => :run
task :run do
require './lib/hello'
end
$ rake
→ helloworld
rake で実行すると、defaultのtaskが実行されるのか
ブランチ作成
git branch <ブランチ名>
rebaseとコンプリくと
$ git rebase <含みたいブランチ>
1 コンフリクト発生
2 >>>で検索する
3 解消する
4 git add -A
5 git rebase --continue 修正終わったら
※一つづつ解決する
コンフリクトの解消
コンフリクト発生
$ git merge master
Auto-merging lib/hello.rb
CONFLICT (content): Merge conflict in lib/hello.rb
Automatic merge failed; fix conflicts and then commit the result.
リモートブランチ
$ git remote -v
$ git branch -a(リモートブランチ一覧)
$ git remote add shared ../hello.git(リモートに追加)
Todo
fetch
pull
bare