「Git」の版間の差分

提供: sha.ngri.la
移動先: 案内検索
(エラー)
 
(同じ利用者による、間の13版が非表示)
17行目: 17行目:
  
 
==共有リポジトリ==
 
==共有リポジトリ==
*[http://blog.s21g.com/articles/1312 [git] 共有リポジトリを作る:git init --bare --shared=true - satoko's blog - s21g]
+
===サーバ側の準備===
 +
<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.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時点における最新版

単体で使うとき

  1. 最初に使うとき
    $ git init
    $ git add .
    $ git commit -a -m "message"
    
  2. 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 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

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 で解決した。