Git
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
-SVNに代わる構成管理。ローカルリポジトリが作成できその中...
*fork github to gitlab [#m8fc29ab]
git remote add upstream https://github.com/user/repo
Now you can fetch and pull from the upstream should there...
git pull upstream master
Finally, push back to your own GitLab repository:
git push origin master
*用語集 [#w559af73]
|項目|説明|備考|
|Fast Forward|ブランチ分岐したものの、その間に分岐下のコ...
|merge commit|ブランチマージ時に作成される。--no-ffをつけ...
|git flow|ブランチ戦略のコマンドツール|
*基本操作一覧 [#ba209603]
|タグを指定してチェックアウト|git checkout -b TAGNAME ref...
|新規作成したブランチをpush|git push origin HEAD|
|最新のコミットだけclone|git clone --depth 1 URL|
|shallow cloneを元に戻す|git fetch --unshallow|
|shallow clonにする|git fetch --depth 1|
*github [#yb93c5db]
**無料プランの制約 [#n91449dc]
privateリポジトリが無制限になったので個人開発には十分
**SSH公開鍵認証にする。 [#s04ac702]
ssh-keygen -t ras -C コメント
**.ssh/configに以下のような設定を入れる [#jeccf3ff]
**Personal access tokens [#va7b0ec3]
https://github.com/settings/tokens
二段階認証を設定した時にgit cloneなどの時に必要なアクセス...
*TIPS [#h28179c6]
**特定のコミット時点に戻す [#x91c3b79]
git reset --hard コミットハッシュ
**一部のディレクトリだけチェックアウト [#e8dae67a]
***一回全部持ってきてから設定で対象パスのみ記載するという...
git clone https://YOUR_GIT_URL
git config core.sparsecheckout true
echo "reservepath/reserve" > .git/info/sparse-checkout
git read-tree -m -u HEAD
***HISTORYを持ってこない(ちょっと目的とは違うが、ディス...
**ブランチ間の差分でファイル名のみ [#d20830cd]
今いるブランチとリモートのnew_branchの差分表示
git diff origin/new_branch --name-only
*subversionからの移行 [#le4745fb]
さすがに使う機会が増えてきたのでなれるべく一部移行。下記...
http://d.hatena.ne.jp/idesaku/20090323/1237825080
*用語集 [#v992a99e]
難解かつ耳慣れない言葉ばかり
|bareリポジトリ|管理用のファイルのみ、ワーキングディレク...
|non-bareリポジトリ|ワーキングディレクトリを持つ|
|mirrorリポジトリ|bareリポジトリのリモートリポジトリバー...
*インストール [#a68280d1]
CentOS6系だとあまりに古いバージョンが入るのでコンパイルし...
**コンパイル [#zcc6aeab]
#必要ライブラリインストール
yum -y install curl-devel expat-devel gettext-devel open...
#ソースダウンロード
wget https://www.kernel.org/pub/software/scm/git/git-2.4...
tar zxvf git-2.4.10.tar.gz
cd git-2.4.10
# コンパイル
make prefix=/usr/local all
make prefix=/usr/local install
*参考サイト [#ic89dc18]
https://try.github.io/levels/1/challenges/1
*新しいブランチを作ってコミットするまで [#wf8fe668]
git checkout -b feature/mynewbranch
git push origin feature/mynewbranch -n
git push origin feature/mynewbranch
*チェックアウト手順 [#ufb0915a]
*リモートリポジトリ [#j3ba41b4]
|git remote show|リモートとの接続情報|
|git branch -vv|リモートとの接続情報。こちらのほうがより...
**クローンする [#j7096e54]
git clone http://example.com/git 任意のディレクトリ名
cd 任意のディレクトリ名
-自己証明書でチェックアウトしたい場合は以下のコマンドを打...
git config --global http.sslVerify false
**pullする [#mb9757b4]
git pull origin testing
*コマンド版 gitローカルリポジトリ作成 [#ea6e8add]
リポジトリには作業ディレクトリを含むものと含まないベアリ...
-ローカルリポジトリを作る場合。
mkdir testproject
cd testproject
git init
echo "git test" > readme
git add .
git commit -m "first commit"
git remote add origin http://www.example.com/testproject...
git push origin master
-既存のリポジトリをクローンする場合はinit 不要
git clone http://example.com/hoge/git.git [hoge以外の名...
git clone http://ID:PW@example.com/git
イメージ的には以下構成となる。
DIR/hoge/.git →http://example.com/hoge/git.git
DIR/fuga/.git →http://example.com/fuga/git.git
-リモートのブランチ一覧
cd xxx
git branch -r
git branch 対象ブランチ
git checkout 対象ブランチ
#一度にやる場合は下記
git checkout -b 対象ブランチ
-リモートブランチ一発削除
git push --delete origin ブランチ名
-今のローカルがどのリモートURLに紐づいているか
git remote -v
-そもそもorigin/masterとは?
origin: レポジトリの場所(URL)の別名
master: ブランチの名前
デフォルトの対象はorigin/masterだ。
git config --list
上記コマンドで今どこを示しているかを確認せよ。
-この状態だとブランチの内容を取り込んでいない!以下のコマ...
git pull origin ブランチ名称
-リモートを複数登録できる。
git remote add NEW_REMOTE git@bitbucket.org:xxxx/foo.git
**コマンド版を使う場合の設定 [#gdfd244b]
-~/.gitconfigに設定を保存しておける。
[url "https://"]
insteadOf = git://
[http]
sslVerify = false
[user]
email = username@example.com
name = username
[remote "origin"]
url = http://GIT_USER:GIT_PASSWORD@git.example.c...
-git config listで今の設定状況を見ることができる
**認証情報の保存 [#effd6eef]
-httpsアクセス時にコマンド対話式の認証をスルーする方法
1.git config --global credential.helper store
2.git コマンドを実行してパスワードなどを入力
3.~/.git-credentialsが作成される
*SVNとの違い [#n055d4dc]
ローカルリポジトリ、index、リモートリポジトリと構成要素が...
|add|コミット準備領域であるindexに追加する|
|commit|あくまでローカルリポジトリに対してのコミット。-a...
|PUSH|リモートリポジトリへのコミット。SVNでいうところのコ...
|FETCH|SVNでいうところのアップデート(ローカルへのマージ...
|PULL|SVNでいうところのアップデート(ローカルへのマージま...
|clone|チェックアウトだが、gitではブランチの切替に利用する|
|fork|githubの機能。cloneと似ているが、分散開発用に元の所...
|アップストリーム ブランチ|ローカルに対して上流にあるブラ...
|branch -a|リモート含むブランチ一覧の表示|
|branch -d|ブランチの削除。すっからかんじゃないと削除不可...
|git log --pretty=oneline pom.xml|ログを省略形の一行で表...
|git log --abbrev-commit pom.xml|コミットIDを省略系。一行...
|git log -p ファイル or ディレクトリ|指定のファイル or デ...
**checkout [#he929032]
ローカルブランチを作成して、そこにリモートを紐つけ。
まずはgit fetchしてリモートのリポジトリ情報を更新しておく
|git checkout -b local_branch origin/remote_branch|
このあとgit fetchが必要。←間違い!git pullと何が違うの?...
**リモートのリポジトリの内容に合わせる [#fccfc2cf]
git fetch origin
git reset --hard origin/master
**push [#q16baf87]
引数なしのpushは非常に危険
http://dqn.sakusakutto.jp/2012/10/git_push.html
|ブランチ指定してPUSH|git push --set-upstream origin test...
|実際には実行しない(dry-run)|git push -n |
**pull [#p7b70014]
リモートから取得する(fetch+merge)
|git pull origin testing|originリポジトリのtestingブラン...
**元に戻す系 [#c71d875d]
svnのように簡単ではない。svn revertはgit checkout file名
|checkout ファイル名|svn revert ファイル名|
|checkout .|すべてのファイルのローカル変更を取消!|
|revert|コミットを取り消す。git revert commit番号|
|reset|ある時点のコミット以降をすべて取り消す!|
|reset --hard|revertみたいなもの。ローカルコミットは取り...
|show|git show commit番号:ファイル名|
**pushされたコミットを打ち消す [#dce2b1ec]
git log
git revert コミットID
git push
**マージ [#p19140e0]
-マージしたいブランチに移動
git checkout merged
-マージ
git merge マージ元のブランチ(リモートを指定してOK)
-コンフリクトの確認
git status でUnmergedになっているもの
**チェックアウトなど [#nf5acd65]
**ファイルの変更サイクル [#u3f54039]
+変更
+add(ステージングにファイルが追加)
+commit(ここまではローカルリポジトリ)
+push(リモートリポジトリにコミット)
*ブランチ運用 [#d3c4cf5a]
masterブランチを統合ブランチとして、リリース向けに運用す...
branch -aでリモート含むブランチ状況を確認しながら作業する。
|git branch testing|testingブランチ追加|
|git checkout testing|testingブランチに切替|
*マージ [#t98d0533]
**first-forwardマージ [#u38007d6]
分岐以降統合ブランチに変更がない場合、統合ブランチのコミ...
**マージ [#b3f859c6]
通常のマージ。統合とトピックブランチをマージしたというコ...
**rebase [#v0c83a97]
ブランチの履歴を消してマージ。トピックブランチが小さいも...
**コメント修正 [#ue27ca33]
git commit --amend
**特定のコミットのみマージ [#w2962240]
-なんとコミットのリビジョンを指定すると、一気にそれまでの...
git cherry-pick 5d0b85e02f5ae4c4984fac388015fe5ce1918673
git cherry-pick 1ea6be61498f49f00cfd0fd5a0a08590087930a6
*いろいろためした [#d38dc474]
-最新のときにgit status
$ git status
On branch MyBranche
Your branch is up-to-date with 'origin/NewBranch'.
nothing to commit, working directory clean
-古いときにgit status。リモートリポジトリに6コミット分あ...
$ git status
On branch development
Your branch is behind 'origin/Develop' by 6 commits, and...
(use "git pull" to update your local branch)
nothing to commit, working directory clean
*トラブルシューティング [#t3c60e84]
error: failed to push some refs to 'http://example.com/g...
To prevent you from losing history, non-fast-forward upd...
Merge the remote changes before pushing again. See the ...
fast-forwards' section of 'git push --help' for details.
**Your local changes to the following files would be over...
ブランチ移動時に未コミットのファイルがあると上記エラー。
消してもいいなら以下のコマンドでローカルの変更を戻す。
git checkout .
*Install [#f702a558]
It's easy to install from source! just configure and make...
*apache [#d069f138]
git-http-backendがソースコンパイルだとないため、下記はバ...
http://www.torutk.com/projects/swe/wiki/CentOS_7%E3%81%A7...
http://www.proton.jp/main/programming/git/smart-http.html
SetEnv GIT_PROJECT_ROOT /usr/local/git
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias /git/ /usr/local/libexec/git-core/git-http-b...
<locationMatch "/git">
AuthType Basic
AuthName "Git Area"
AuthUserFile /usr/local/apache2/htdocs/.htpasswd
require valid-user
Order allow,deny
Allow from all
</locationMatch>
***AWSの場合 [#ufbe663d]
-git init
[root@ip-172-31-17-50 git]# git init
Initialized empty Git repository in /var/www/git/.git/
-/etc/httpd/conf.d/git.conf
#Alias /git /var/www/git
SetEnv GIT_PROJECT_ROOT /var/www/git/.git
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/
<Directory /var/www/git>
Options +ExecCGI
AddHandler cgi-script .cgi
DirectoryIndex gitweb.cgi
</Directory>
*gitstatsの使い方 [#z53e663b]
まずはgitをクローンする。そのうえで以下のように実行すると...
gitstats git_clone_dir/ /var/www/html/new_dir
-オプションで特定のブランチやらを設定できる(解析時間は変...
gitstats -c commit_begin=ハッシュ(短いのでもOK)
http://manpages.ubuntu.com/manpages/trusty/man1/gitstats....
**文字化け [#r6bbb050]
内部でgnuplotを呼んでいる。フォントがないとarialを使おう...
yum install vlgothic-fonts.noarch
export GDFONTPATH=/usr/share/fonts/vlgothic
export GNUPLOT_DEFAULT_GDFONT=VL-Gothic-Regular
*httpとの連携 [#a14d3ec5]
http://int128.hatenablog.com/entry/20130118/1358440428
*ハマリポイント [#s7e08e67]
**リモートと同名のブランチがローカルにも簡単に作れてしま...
既存branchの切り替えにはcheckoutを使うが、間違ってbranch...
オペレーションミスだが、警告すら出ないのが問題。一度そう...
**アップストリームとブランチ名の関係が不明瞭 [#d24a5ebd]
分かりにくい原因がこれに尽きる。サーバーの最新状態をorigi...
*svnのリポジトリ移行 [#d1da9895]
#ローカルリポジトリをチェックアウト
git svn clone -s https://REPO_URL/
cd xxx
git status
*ブランチ間の差分チェック [#ice1c692]
-以下のコマンドで実施可能
git diff master:対象ファイル branch:対象ファイル
-チェックするシェルを作ってみた
#!/bin/sh
LEFT=origin/master
RIGHT=origin/branch
DIFFLIST=$1
while read x; do
# echo $x
git diff $LEFT:$x $RIGHT:$x >> diff_result.txt
done < $DIFFLIST
終了行:
-SVNに代わる構成管理。ローカルリポジトリが作成できその中...
*fork github to gitlab [#m8fc29ab]
git remote add upstream https://github.com/user/repo
Now you can fetch and pull from the upstream should there...
git pull upstream master
Finally, push back to your own GitLab repository:
git push origin master
*用語集 [#w559af73]
|項目|説明|備考|
|Fast Forward|ブランチ分岐したものの、その間に分岐下のコ...
|merge commit|ブランチマージ時に作成される。--no-ffをつけ...
|git flow|ブランチ戦略のコマンドツール|
*基本操作一覧 [#ba209603]
|タグを指定してチェックアウト|git checkout -b TAGNAME ref...
|新規作成したブランチをpush|git push origin HEAD|
|最新のコミットだけclone|git clone --depth 1 URL|
|shallow cloneを元に戻す|git fetch --unshallow|
|shallow clonにする|git fetch --depth 1|
*github [#yb93c5db]
**無料プランの制約 [#n91449dc]
privateリポジトリが無制限になったので個人開発には十分
**SSH公開鍵認証にする。 [#s04ac702]
ssh-keygen -t ras -C コメント
**.ssh/configに以下のような設定を入れる [#jeccf3ff]
**Personal access tokens [#va7b0ec3]
https://github.com/settings/tokens
二段階認証を設定した時にgit cloneなどの時に必要なアクセス...
*TIPS [#h28179c6]
**特定のコミット時点に戻す [#x91c3b79]
git reset --hard コミットハッシュ
**一部のディレクトリだけチェックアウト [#e8dae67a]
***一回全部持ってきてから設定で対象パスのみ記載するという...
git clone https://YOUR_GIT_URL
git config core.sparsecheckout true
echo "reservepath/reserve" > .git/info/sparse-checkout
git read-tree -m -u HEAD
***HISTORYを持ってこない(ちょっと目的とは違うが、ディス...
**ブランチ間の差分でファイル名のみ [#d20830cd]
今いるブランチとリモートのnew_branchの差分表示
git diff origin/new_branch --name-only
*subversionからの移行 [#le4745fb]
さすがに使う機会が増えてきたのでなれるべく一部移行。下記...
http://d.hatena.ne.jp/idesaku/20090323/1237825080
*用語集 [#v992a99e]
難解かつ耳慣れない言葉ばかり
|bareリポジトリ|管理用のファイルのみ、ワーキングディレク...
|non-bareリポジトリ|ワーキングディレクトリを持つ|
|mirrorリポジトリ|bareリポジトリのリモートリポジトリバー...
*インストール [#a68280d1]
CentOS6系だとあまりに古いバージョンが入るのでコンパイルし...
**コンパイル [#zcc6aeab]
#必要ライブラリインストール
yum -y install curl-devel expat-devel gettext-devel open...
#ソースダウンロード
wget https://www.kernel.org/pub/software/scm/git/git-2.4...
tar zxvf git-2.4.10.tar.gz
cd git-2.4.10
# コンパイル
make prefix=/usr/local all
make prefix=/usr/local install
*参考サイト [#ic89dc18]
https://try.github.io/levels/1/challenges/1
*新しいブランチを作ってコミットするまで [#wf8fe668]
git checkout -b feature/mynewbranch
git push origin feature/mynewbranch -n
git push origin feature/mynewbranch
*チェックアウト手順 [#ufb0915a]
*リモートリポジトリ [#j3ba41b4]
|git remote show|リモートとの接続情報|
|git branch -vv|リモートとの接続情報。こちらのほうがより...
**クローンする [#j7096e54]
git clone http://example.com/git 任意のディレクトリ名
cd 任意のディレクトリ名
-自己証明書でチェックアウトしたい場合は以下のコマンドを打...
git config --global http.sslVerify false
**pullする [#mb9757b4]
git pull origin testing
*コマンド版 gitローカルリポジトリ作成 [#ea6e8add]
リポジトリには作業ディレクトリを含むものと含まないベアリ...
-ローカルリポジトリを作る場合。
mkdir testproject
cd testproject
git init
echo "git test" > readme
git add .
git commit -m "first commit"
git remote add origin http://www.example.com/testproject...
git push origin master
-既存のリポジトリをクローンする場合はinit 不要
git clone http://example.com/hoge/git.git [hoge以外の名...
git clone http://ID:PW@example.com/git
イメージ的には以下構成となる。
DIR/hoge/.git →http://example.com/hoge/git.git
DIR/fuga/.git →http://example.com/fuga/git.git
-リモートのブランチ一覧
cd xxx
git branch -r
git branch 対象ブランチ
git checkout 対象ブランチ
#一度にやる場合は下記
git checkout -b 対象ブランチ
-リモートブランチ一発削除
git push --delete origin ブランチ名
-今のローカルがどのリモートURLに紐づいているか
git remote -v
-そもそもorigin/masterとは?
origin: レポジトリの場所(URL)の別名
master: ブランチの名前
デフォルトの対象はorigin/masterだ。
git config --list
上記コマンドで今どこを示しているかを確認せよ。
-この状態だとブランチの内容を取り込んでいない!以下のコマ...
git pull origin ブランチ名称
-リモートを複数登録できる。
git remote add NEW_REMOTE git@bitbucket.org:xxxx/foo.git
**コマンド版を使う場合の設定 [#gdfd244b]
-~/.gitconfigに設定を保存しておける。
[url "https://"]
insteadOf = git://
[http]
sslVerify = false
[user]
email = username@example.com
name = username
[remote "origin"]
url = http://GIT_USER:GIT_PASSWORD@git.example.c...
-git config listで今の設定状況を見ることができる
**認証情報の保存 [#effd6eef]
-httpsアクセス時にコマンド対話式の認証をスルーする方法
1.git config --global credential.helper store
2.git コマンドを実行してパスワードなどを入力
3.~/.git-credentialsが作成される
*SVNとの違い [#n055d4dc]
ローカルリポジトリ、index、リモートリポジトリと構成要素が...
|add|コミット準備領域であるindexに追加する|
|commit|あくまでローカルリポジトリに対してのコミット。-a...
|PUSH|リモートリポジトリへのコミット。SVNでいうところのコ...
|FETCH|SVNでいうところのアップデート(ローカルへのマージ...
|PULL|SVNでいうところのアップデート(ローカルへのマージま...
|clone|チェックアウトだが、gitではブランチの切替に利用する|
|fork|githubの機能。cloneと似ているが、分散開発用に元の所...
|アップストリーム ブランチ|ローカルに対して上流にあるブラ...
|branch -a|リモート含むブランチ一覧の表示|
|branch -d|ブランチの削除。すっからかんじゃないと削除不可...
|git log --pretty=oneline pom.xml|ログを省略形の一行で表...
|git log --abbrev-commit pom.xml|コミットIDを省略系。一行...
|git log -p ファイル or ディレクトリ|指定のファイル or デ...
**checkout [#he929032]
ローカルブランチを作成して、そこにリモートを紐つけ。
まずはgit fetchしてリモートのリポジトリ情報を更新しておく
|git checkout -b local_branch origin/remote_branch|
このあとgit fetchが必要。←間違い!git pullと何が違うの?...
**リモートのリポジトリの内容に合わせる [#fccfc2cf]
git fetch origin
git reset --hard origin/master
**push [#q16baf87]
引数なしのpushは非常に危険
http://dqn.sakusakutto.jp/2012/10/git_push.html
|ブランチ指定してPUSH|git push --set-upstream origin test...
|実際には実行しない(dry-run)|git push -n |
**pull [#p7b70014]
リモートから取得する(fetch+merge)
|git pull origin testing|originリポジトリのtestingブラン...
**元に戻す系 [#c71d875d]
svnのように簡単ではない。svn revertはgit checkout file名
|checkout ファイル名|svn revert ファイル名|
|checkout .|すべてのファイルのローカル変更を取消!|
|revert|コミットを取り消す。git revert commit番号|
|reset|ある時点のコミット以降をすべて取り消す!|
|reset --hard|revertみたいなもの。ローカルコミットは取り...
|show|git show commit番号:ファイル名|
**pushされたコミットを打ち消す [#dce2b1ec]
git log
git revert コミットID
git push
**マージ [#p19140e0]
-マージしたいブランチに移動
git checkout merged
-マージ
git merge マージ元のブランチ(リモートを指定してOK)
-コンフリクトの確認
git status でUnmergedになっているもの
**チェックアウトなど [#nf5acd65]
**ファイルの変更サイクル [#u3f54039]
+変更
+add(ステージングにファイルが追加)
+commit(ここまではローカルリポジトリ)
+push(リモートリポジトリにコミット)
*ブランチ運用 [#d3c4cf5a]
masterブランチを統合ブランチとして、リリース向けに運用す...
branch -aでリモート含むブランチ状況を確認しながら作業する。
|git branch testing|testingブランチ追加|
|git checkout testing|testingブランチに切替|
*マージ [#t98d0533]
**first-forwardマージ [#u38007d6]
分岐以降統合ブランチに変更がない場合、統合ブランチのコミ...
**マージ [#b3f859c6]
通常のマージ。統合とトピックブランチをマージしたというコ...
**rebase [#v0c83a97]
ブランチの履歴を消してマージ。トピックブランチが小さいも...
**コメント修正 [#ue27ca33]
git commit --amend
**特定のコミットのみマージ [#w2962240]
-なんとコミットのリビジョンを指定すると、一気にそれまでの...
git cherry-pick 5d0b85e02f5ae4c4984fac388015fe5ce1918673
git cherry-pick 1ea6be61498f49f00cfd0fd5a0a08590087930a6
*いろいろためした [#d38dc474]
-最新のときにgit status
$ git status
On branch MyBranche
Your branch is up-to-date with 'origin/NewBranch'.
nothing to commit, working directory clean
-古いときにgit status。リモートリポジトリに6コミット分あ...
$ git status
On branch development
Your branch is behind 'origin/Develop' by 6 commits, and...
(use "git pull" to update your local branch)
nothing to commit, working directory clean
*トラブルシューティング [#t3c60e84]
error: failed to push some refs to 'http://example.com/g...
To prevent you from losing history, non-fast-forward upd...
Merge the remote changes before pushing again. See the ...
fast-forwards' section of 'git push --help' for details.
**Your local changes to the following files would be over...
ブランチ移動時に未コミットのファイルがあると上記エラー。
消してもいいなら以下のコマンドでローカルの変更を戻す。
git checkout .
*Install [#f702a558]
It's easy to install from source! just configure and make...
*apache [#d069f138]
git-http-backendがソースコンパイルだとないため、下記はバ...
http://www.torutk.com/projects/swe/wiki/CentOS_7%E3%81%A7...
http://www.proton.jp/main/programming/git/smart-http.html
SetEnv GIT_PROJECT_ROOT /usr/local/git
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias /git/ /usr/local/libexec/git-core/git-http-b...
<locationMatch "/git">
AuthType Basic
AuthName "Git Area"
AuthUserFile /usr/local/apache2/htdocs/.htpasswd
require valid-user
Order allow,deny
Allow from all
</locationMatch>
***AWSの場合 [#ufbe663d]
-git init
[root@ip-172-31-17-50 git]# git init
Initialized empty Git repository in /var/www/git/.git/
-/etc/httpd/conf.d/git.conf
#Alias /git /var/www/git
SetEnv GIT_PROJECT_ROOT /var/www/git/.git
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/
<Directory /var/www/git>
Options +ExecCGI
AddHandler cgi-script .cgi
DirectoryIndex gitweb.cgi
</Directory>
*gitstatsの使い方 [#z53e663b]
まずはgitをクローンする。そのうえで以下のように実行すると...
gitstats git_clone_dir/ /var/www/html/new_dir
-オプションで特定のブランチやらを設定できる(解析時間は変...
gitstats -c commit_begin=ハッシュ(短いのでもOK)
http://manpages.ubuntu.com/manpages/trusty/man1/gitstats....
**文字化け [#r6bbb050]
内部でgnuplotを呼んでいる。フォントがないとarialを使おう...
yum install vlgothic-fonts.noarch
export GDFONTPATH=/usr/share/fonts/vlgothic
export GNUPLOT_DEFAULT_GDFONT=VL-Gothic-Regular
*httpとの連携 [#a14d3ec5]
http://int128.hatenablog.com/entry/20130118/1358440428
*ハマリポイント [#s7e08e67]
**リモートと同名のブランチがローカルにも簡単に作れてしま...
既存branchの切り替えにはcheckoutを使うが、間違ってbranch...
オペレーションミスだが、警告すら出ないのが問題。一度そう...
**アップストリームとブランチ名の関係が不明瞭 [#d24a5ebd]
分かりにくい原因がこれに尽きる。サーバーの最新状態をorigi...
*svnのリポジトリ移行 [#d1da9895]
#ローカルリポジトリをチェックアウト
git svn clone -s https://REPO_URL/
cd xxx
git status
*ブランチ間の差分チェック [#ice1c692]
-以下のコマンドで実施可能
git diff master:対象ファイル branch:対象ファイル
-チェックするシェルを作ってみた
#!/bin/sh
LEFT=origin/master
RIGHT=origin/branch
DIFFLIST=$1
while read x; do
# echo $x
git diff $LEFT:$x $RIGHT:$x >> diff_result.txt
done < $DIFFLIST
ページ名: