RSS

snaka's Marks

写真

snaka
コメントが登録されていません。
URLが登録されていません。

Git ユーザマニュアル (バージョン 1.5.3 以降用) コメントを見る マーカーリンク Blog へ貼る

git submodule add ~/git/$i

たぶん、最後に $i 必要だと思う。(自分の場合はそうだった)。gitのバージョンの違い?

Git ユーザマニュアル (バージョン 1.5.3 以降用) コメントを見る マーカーリンク Blog へ貼る

for i in a b c d do         mkdir $i         cd $i         git init         echo "module $i" > $i.txt         git add $i.txt         git commit -m "Initial commit, submodule $i"         cd .. done

じぶんのかんきょうでは(bash)では行末に¥(バックスラッシュ)を入れないと複数行での入力はできない。(常識かもしれないが...)

git チュートリアル (バージョン 1.5.1 以降用) コメントを見る マーカーリンク Blog へ貼る

コミットの名前をつけることもできます

CVSやSVNで言うところのタグを打つということ。

git チュートリアル (バージョン 1.5.1 以降用) コメントを見る マーカーリンク Blog へ貼る

git config --get remote.origin.url

clone元のリポジトリを確認するためのコマンド

git チュートリアル (バージョン 1.5.1 以降用) コメントを見る マーカーリンク Blog へ貼る

bob/master

リモートリポジトリ'bob'の'master'ブランチを指している。

git チュートリアル (バージョン 1.5.1 以降用) コメントを見る マーカーリンク Blog へ貼る

master

現在のローカルの'master'ブランチを指している。

git チュートリアル (バージョン 1.5.1 以降用) コメントを見る マーカーリンク Blog へ貼る

リモート追跡用ブランチに格納

git-remoteコマンドで追加したやつ。

git チュートリアル (バージョン 1.5.1 以降用) コメントを見る マーカーリンク Blog へ貼る

bob

git-remoteコマンドで登録した名前

git チュートリアル (バージョン 1.5.1 以降用) コメントを見る マーカーリンク Blog へ貼る

git remote add

git remote add はリモートのリポジトリを追跡するためのリポジトリ(?)をローカルに作るコマンド

git チュートリアル (バージョン 1.5.1 以降用) コメントを見る マーカーリンク Blog へ貼る

その後に、変更点を確認してから現在のブランチにマージしたい場合です) remote リポジトリの略称を登録ことによって、この作業をより簡単に行うことができます

remoteリポジトリの略称を登録”しないで”この作業を行う方法があるのかな? git remote add しないと remote追跡用のリポジトリが作成されないので、出来ない気がするが... 後で調べる。

git チュートリアル (バージョン 1.5.1 以降用) コメントを見る マーカーリンク Blog へ貼る

ブランチは安くて簡単です。何かを試す時にはとても便利です。

CVSではブランチを作るといろいろ管理が大変でめんどうな印象があるが、gitでは比較的気軽にブランチを作って作業することができる。 で、いらなくなったブランチも気軽に削除できる。 これは分散リポジトリであるgitの利点だと思う。 CVSやSVNだと中央のリポジトリを共有しているため、ブランチの作成が他の利用者に影響を与える場合があるが、gitの場合はローカルのクローンのリポジトリに対する操作であるため、他の利用者への影響を考慮する必要がない。

git チュートリアル (バージョン 1.5.1 以降用) コメントを見る マーカーリンク Blog へ貼る

さて、ファイルを編集し、コミットし、master ブランチに戻ってください:

ここで、コミットせずにブランチを切り替えようとすると、gitから"コミットしていない変更がある"というエラーメッセージが出て変更できない。

git チュートリアル (バージョン 1.5.1 以降用) コメントを見る マーカーリンク Blog へ貼る

git はファイルではなくコンテンツを追跡する

分かりにくかったので補足。 ここで言っている「コンテンツ」とは「ファイルのみではない」という事を強調していて、ディレクトリ構造やファイルの属性等も追跡の対象である、ということを言いたいのだと思う。

git チュートリアル (バージョン 1.5.1 以降用) コメントを見る マーカーリンク Blog へ貼る

(ただし新規ファイルは除く)

ここは重要。git commit -a で自動的に処理されるのは「gitの管理下にあるもの」のみを対象とするから。 新規に追加したファイルは git add した時点でgitの管理下に置かれる。

git チュートリアル (バージョン 1.5.1 以降用) コメントを見る マーカーリンク Blog へ貼る

いくつかのファイルを変更した後、更新した内容を索引に追加します: $ git add file1 file2 file3 これでコミットする準備ができました。

なぜ、CVSやSVNには無い、index(索引)というものが存在するのか? (自分の理解では)GitではSVNのように一つのコミット(SVNでいうリビジョン)という単位に対して対象のオブジェクト(ファイルやディレクトリ)が複数存在する。 GUIのインターフェースのようにディレクトリツリーやファイルにチェックを付けて、コミットする、とう形であれば問題無いが、コマンドラインのインターフェースで複数のオブジェクトを指定するのは大変なので、一時的な場所としてIndex(索引)というものが存在しているんじゃないかな?(自身無し)

git チュートリアル (バージョン 1.5.1 以降用) コメントを見る マーカーリンク Blog へ貼る

コミットメッセージの入力が求められます。

環境によると思うがたぶんvimとかエディタが起動する。

git チュートリアル (バージョン 1.5.1 以降用) コメントを見る マーカーリンク Blog へ貼る

例えば "git diff" コマンドのマニュアルは以下の方法で取得できます。

補足:"git diff"コマンドの場合、ハイフンで繋いで"git-diff"という感じにする。gitのmanページを参照する場合はほとんどこんな感じになる。

git チュートリアル:パート2 コメントを見る マーカーリンク Blog へ貼る

blob

バイナリ・ラージ・オブジェクト

git チュートリアル:パート2 コメントを見る マーカーリンク Blog へ貼る

この例の 40桁の 16進数をコピーせず、あなた自身のバージョンの名前を使用してください。

この表現ちょっとわかりにくい。 言い換えると、以下の例にあるコマンドをそのまま叩いてもダメということ。 なぜなら、この文書の読者はこの例で使用しているリポジトリのクローンをローカルにもっていないはずなので、この例にあるハッシュ値(オブジェクトID)は使用できない。 ローカルにあるリポジトリのIDを使わないとダメ、ということ。