1. 開発中の作業
開発中は チェックアウト→ 修正 → ローカルコミット→マージ→ローカルコミット→プッシュ の基本の流れと、修正を取り消すことが主な作業となるので整理します。
$ git clone git://localhost/test2.git $ cd test2 == ファイルを追加、削除、ファイル移動 $ touch "hoge" > newfile.txt $ git add . $ rm currentfile.txt $ git rm currentfile.txt $ git mv test.txt rename.txt == 状況確認, コミット $ git status // どのファイルが追加・編集・削除 されたか $ git diff // ローカルレポジトリとの比較 $ git commit -m "コメント" == レポジトリの確認 $ git log // コミット日時とコメント一覧 == もとに戻す $ git reset --hard commit_hash # 指定したコミットにローカルリポジトリ、インデックスを完全に戻す。 # コミットしていない状態に戻り無かったことになる $ git reset --soft HEAD~ # 1つ前のコミットに戻す。ワーキングツリー・インデックスファイルは影響しない $ git reset --mixed HEAD~ # 1つ前のコミットにインデックス・リポジトリを戻す。ワーキングツリーには影響しない
2. バージョン管理開始や移行作業
gitへの登録やgitサーバを切り替えるときの作業。合わせてgitサーバをMacで起動する方法も整理する。
2.1 gitサーバの起動
標準のgit-daemonを利用してgitサーバを構築します。
== テスト用レポジトリの作成 $ cd /cocos/repositories ## ここをgitのレポジトリとする $ mkdir test1.git $ cd test1.git $ git init --bare --shared Initialized empty Git repository in /cocos/repositories/test1/ == git-daemonを起動 $ /usr/libexec/git-core/git-daemon --verbose --export-all ¥
--enable=receive-pack --base-path=/cocos/repositories & [16161] Ready to rumble == 別ウィンドウ・ディレクトリでチェックアウトとコミットのテスト $ cd $ git clone git://localhost/test1.git Cloning into 'test1'... warning: You appear to have cloned an empty repository. $ cd test1 $ ls $ echo "test" > text.txt $ git add . $ git commit -m "initial commit" // 初回は名前とメールアドレスを自動設定したとのメッセージが表示 $ git config --global user.name "Name" // 適当に設定する $ git config --global user.email "hoge@gmail.com" $ git remote add origin git://localhost/test1.git $ git push -u origin master
Counting objects: 3, done. Writing objects: 100% (3/3), 219 bytes, done. Total 3 (delta 0), reused 0 (delta 0) To git://localhost/test1.git * [new branch] master -> master
$ git remote -v # 現在のリモートレポジトリを確認 origin git://localhost/test1.git (fetch) origin git://localhost/test1.git (push) $ git remote set-url origin git://localhost/test2.git $ git remote -v origin git://localhost/test2.git (fetch) origin git://localhost/test2.git (push) $ git push
2.3 外部のgitサービスを利用
$ cd tmp ⇐ フォルダ名はなんでもいい $ touch README.md $ git init Initialized empty Git repository in /Users/xxxxx/tmp/.git/ $ git add README.md $ git commit -m "first commit" [master (root-commit) 2af2742] first commit 0 files changed create mode 100644 README.md $ git remote add origin https://git.codebreak.com/xxxxx/hoge.git $ git push -u origin master ⇐ originをレポジトリのmasterにして送信 Username for 'https://git.codebreak.com': xxxxxxxx Password for 'https://xxxxx@git.codebreak.com': xxxxxxx Counting objects: 3, done. Writing objects: 100% (3/3), 204 bytes, done. Total 3 (delta 0), reused 0 (delta 0) remote: Updating references: 100% (1/1) To https://git.codebreak.com/xxxxxx/hoge.git * [new branch] master -> master Branch master set up to track remote branch master from origin. $ cd $ git clone https://git.codebreak.com/xxxx/hoge.git $ cd hoge $ ls README.md