「Git」の版間の差分
提供: sha.ngri.la
細 (→共有リポジトリ) |
細 (→エラー) |
||
(同じ利用者による、間の12版が非表示) | |||
17行目: | 17行目: | ||
==共有リポジトリ== | ==共有リポジトリ== | ||
+ | ===サーバ側の準備=== | ||
+ | <pre> | ||
+ | $ mkdir fooo.git | ||
+ | $ cd fooo.git | ||
+ | $ git init --bare --shared=true | ||
+ | </pre> | ||
+ | 他のサイトを見ると"$ sudo git init --bare --shared=true"と書いてあるけど、私の場合sudo使わないとうまくいった。なんでだろう? | ||
+ | ===ローカル側の準備=== | ||
+ | <pre> | ||
+ | $ git init | ||
+ | $ git remote add origin ssh://username@sha.ngri.la/home/username/fooo.git | ||
+ | $ git add . | ||
+ | $ git commit -a -m "initial import" | ||
+ | $ git push origin master | ||
+ | </pre> | ||
+ | *git remote add origin のときにサーバでのusernameを入れておかないとローカルのユーザ名で認証しようとするのでログインできなかった。 | ||
+ | ===他のマシンの準備=== | ||
+ | <pre> | ||
+ | $ mkdir fooo | ||
+ | $ cd fooo | ||
+ | $ git init | ||
+ | $ git remote add origin ssh://username@sha.ngri.la/home/username/fooo.git | ||
+ | $ git add . | ||
+ | $ git commit -a -m "initial import" | ||
+ | $ git pull origin master | ||
+ | </pre> | ||
+ | ===Link=== | ||
*[http://blog.s21g.com/articles/1312 <nowiki>[</nowiki>git<nowiki>]</nowiki> 共有リポジトリを作る:git init --bare --shared=true - satoko's blog - s21g] | *[http://blog.s21g.com/articles/1312 <nowiki>[</nowiki>git<nowiki>]</nowiki> 共有リポジトリを作る:git init --bare --shared=true - satoko's blog - s21g] | ||
*[http://blog.champierre.com/842 続 せっかちな人のための git 入門 - 共有リポジトリの作り方 - 僕は発展途上技術者] | *[http://blog.champierre.com/842 続 せっかちな人のための git 入門 - 共有リポジトリの作り方 - 僕は発展途上技術者] | ||
+ | |||
+ | ==ローカルの変更を元に戻す== | ||
+ | ===特定のファイルを戻すとき=== | ||
+ | <pre> | ||
+ | $ git checkout ファイル名 | ||
+ | </pre> | ||
+ | ===全て元に戻すとき=== | ||
+ | <pre> | ||
+ | $ git checkout . | ||
+ | </pre> | ||
+ | ===link=== | ||
+ | *[http://d.hatena.ne.jp/kanonji/20101116/1289885277 git addの取り消しと、コミット済みのファイルを除外する方法 - kanonjiの日記] | ||
+ | |||
+ | ==.gitignore== | ||
+ | <code>git add .</code>で登録してしまったファイルを、<code>.gitignore</code>に書いても同期されてしまう。このときは、 | ||
+ | <pre> | ||
+ | $ git rm --cached -f config/database.yml | ||
+ | </pre> | ||
+ | ファイルも削除してしまいたい場合は、 | ||
+ | <pre> | ||
+ | $ git rm -f foo.html | ||
+ | </pre> | ||
+ | *[http://www.omakase.org/misc/gitignore.html gitで管理しないファイルを無視させる .gitignore|misc|@OMAKASE] | ||
+ | |||
+ | ==エラー== | ||
+ | ===fatal: unable to stat 'filename': No such file or directory=== | ||
+ | ファイルを削除した後に<span class="inlinepre">git add .</span>したときにエラーが出たので、その対応。 | ||
+ | <pre> | ||
+ | $ git rm "path/to/filename" | ||
+ | $ git add . | ||
+ | $ git commit -am 'my commit' | ||
+ | </pre> | ||
+ | ====link==== | ||
+ | *[http://stackoverflow.com/questions/14161297/git-error-fatal-unable-to-stat-no-such-file-or-directory github - Git error fatal: unable to stat '*': No such file or directory - Stack Overflow] | ||
+ | *[http://tnakamura.hatenablog.com/entry/20090504/1241398150 Git でローカルの変更を元に戻す - present] | ||
+ | ==fatal: the remote end hung up unexpectedly== | ||
+ | <pre> | ||
+ | client_loop: send disconnect: Broken pipe | ||
+ | send-pack: unexpected disconnect while reading sideband packet | ||
+ | fatal: the remote end hung up unexpectedly | ||
+ | </pre> | ||
+ | のとき | ||
+ | <code>git gc --aggressive</code> | ||
+ | で解決した。 | ||
+ | [[Category:Git]] |
2021年9月11日 (土) 07:56時点における最新版
目次
単体で使うとき
- 最初に使うとき
$ git init $ git add . $ git commit -a -m "message"
- 2回目以降
$ git add . $ git commit -a -m "message"
共有リポジトリ
サーバ側の準備
$ mkdir fooo.git $ cd fooo.git $ git init --bare --shared=true
他のサイトを見ると"$ sudo git init --bare --shared=true"と書いてあるけど、私の場合sudo使わないとうまくいった。なんでだろう?
ローカル側の準備
$ git init $ git remote add origin ssh://username@sha.ngri.la/home/username/fooo.git $ git add . $ git commit -a -m "initial import" $ git push origin master
- git remote add origin のときにサーバでのusernameを入れておかないとローカルのユーザ名で認証しようとするのでログインできなかった。
他のマシンの準備
$ mkdir fooo $ cd fooo $ git init $ git remote add origin ssh://username@sha.ngri.la/home/username/fooo.git $ git add . $ git commit -a -m "initial import" $ git pull origin master
Link
- [git] 共有リポジトリを作る:git init --bare --shared=true - satoko's blog - s21g
- 続 せっかちな人のための git 入門 - 共有リポジトリの作り方 - 僕は発展途上技術者
ローカルの変更を元に戻す
特定のファイルを戻すとき
$ git checkout ファイル名
全て元に戻すとき
$ git checkout .
link
.gitignore
git add .
で登録してしまったファイルを、.gitignore
に書いても同期されてしまう。このときは、
$ git rm --cached -f config/database.yml
ファイルも削除してしまいたい場合は、
$ git rm -f foo.html
エラー
fatal: unable to stat 'filename': No such file or directory
ファイルを削除した後にgit add .したときにエラーが出たので、その対応。
$ git rm "path/to/filename" $ git add . $ git commit -am 'my commit'
link
- github - Git error fatal: unable to stat '*': No such file or directory - Stack Overflow
- Git でローカルの変更を元に戻す - present
fatal: the remote end hung up unexpectedly
client_loop: send disconnect: Broken pipe send-pack: unexpected disconnect while reading sideband packet fatal: the remote end hung up unexpectedly
のとき
git gc --aggressive
で解決した。