# クローン
git clone git@github.com:hoge/fuga.git
cd fuga/
# チェックアウト
git checkout develop
# カレントのブランチを確認
git branch
クローンからチェックアウトまでをコマンド 1つで行う場合。
git clone git@bitbucket.org:nextgen-rd/hoge.git -b develop
git log --all --grep="xxx"
チェックアウト中のブランチだけを対象にする場合は、--all は不要。
git branch <ブランチ名>git checkout <ブランチ名>git checkout -b <ブランチ名>git branchgit -a branchgit statusgit add .git add hoge/fuga
git statusgit diffgit commit -m <message>
git statusgit commit -F- << EOM
> hoge
> fuga
> EOM
vim などのエディタで入力
git commit
エディタが起動するのでメッセージを入力
git push origin HEADgit tag <tag>git tag <tag> -m 'comment'git push origin <tag>git push --delete origin tag <tag>git tag -d <tag>git diff -wgit show <commitid>
git diff <比較元ハッシュ値>..<比較先ハッシュ値> [比較ファイル]git diff <変更元タグ>..<変更先タグ>git diff --cached -wgit show-branch | grep '*' | grep -v "$(git rev-parse --abbrev-ref HEAD)" | head -1 | awk -F '[]~^[]' '{print $2}'git blame <ファイル名>git diff --stat <変更前タグ> <変更後タグ>git push -u orign HEAD
git checkout main
git merge -
git push origin HEAD
Go ビルド時にバージョン情報を埋め込む場合などに使用。
git log --pretty=format:%H -n 1
git rev-parse --short HEAD
git describe --tags --abbrev=0
Go ビルド時に埋め込む
package main
var version string
var revision string
func main() {
fmt.Printf("%s, %s\n", version, revision)
}
go build -ldflags "-X main.version=$(git describe --tags --abbrev=0) -X main.revision=$(git rev-parse --short HEAD)"
mkdir -p ~/git/repos/hogeprojectcd ~/git/repos/hogeprojectgit --bare init --sharedssh://user@127.0.0.1/Users/hoge/git/repos/hogeprojectあとは接続時に指定したローカルディレクトリにファイルを置いていって、コミット、プッシュする
git branchgit branch -agit checkout <ブランチ名>git branch -m <旧ブランチ名> <新ブランチ名># リポジトリ用ディレクトリを作成
mkdir -p ~/git/repos/hogeproject
cd ~/git/repos/hogeproject
# リポジトリ用に初期化
git --bare init --shared
# Mac の共有設定で、リモートログインを有効にする
SourceTree の "新規リポジトリ" で "URLからクローン" を選択する。
# SourceTree から接続する時に指定するURL
ssh://user@127.0.0.1/Users/hoge/git/repos/hogeproject
あとは接続時に指定したローカルディレクトリにファイルを置いていって、コミット、プッシュする
Mac で SSH 接続を許可するため、[システム環境設定] - [共有] - [リモートログイン] を許可しておく。
合わせて「リモートユーザーのフルディスクアクセスを許可」をチェックしておく。
AddKeysToAgent yes
UseKeychain yes
Host github.com
user <githubアカウント>
IdentityFile <秘密鍵のパス>
ssh-add --apple-use-keychain <秘密鍵のパス>git rm hoge.txt
git rm --cached hoge.txt
git rm -r examples
git checkout -b <新規ブランチ名>
(参考) ブランチを作り忘れた時
git branch -a しても、リモートにあるブランチが表示されない。git remote show origin を実行して、ブランチの状態を表示。<ブランチ名> new (next fetch will store in remotes/origin)
そこで git fetch --all を実行して、最新の情報を取得する。
git pull --tags
git reset --soft HEAD^
または
git reset --hard <コミットID>
Host bitbucket.org
HostName bitbucket.org
PreferredAuthentications publickey
IdentityFile ~/.ssh/privatekey
UseKeychain yes
AddKeysToAgent yes
AddressFamily inet
ssh が bitbucket に IPv6 で接続する様子は次のコマンドで確認。
netstat -an | grep "\.22 "