ぱそくま ろご
linux > Git > Gitで作業する - 初期設定とファイル追加

Gitで作業する - 初期設定とファイル追加

Gitの作業の準備

まずはGitを使う前に、Gitのユーザー設定を行います。 Gitのユーザー設定は「git config --global <カテゴリ> <値>」となります。 ちなみに「--global」オプションはそのログインユーザーのデフォルト値となり、設定は~/.gitconfigに保存されます。 もしも、プロジェクト毎にユーザーを変えたい場合はGitのプロジェクトの中で「--global」をつけずに実行してください。 そうするとプロジェクト内にユーザー設定が保存できます。

git configでユーザー設定

[paso ~] git config --global user.name "paso kumatarou" 
[paso ~] git config --global user.email paso@pasokuma.net
[paso ~] git config --global core.editor emacs
[paso ~] git config --list #内容が正しいか確認
[user]
     name = paso kumatarou
     email = paso@pasokuma.net
[core]
     editor = emacs

リポジトリをサーバーから取得(クローンの作成)

次にGitリポジトリをサーバーから取得する必要があります。それを行うのが「git clone」です。 書式は「git clone <リポジトリURL>[ <ローカルディレクトリ>]」

例:git cloneでリポジトリをローカルにコピーする

[paso ~] git clone http://pasokuma.net/git/dev1.git ~/project/dev1
Cloning into 'dev1'...
warning: You appear to have cloned an empty repository.空のリポジトリの場合これが表示される
Checking connectivity... done.

これで作業する準備が整いました。これでgitを使った作業ができます。 なお、クローンでリポジトリを作成すると.git/configファイルに[remote "orgin"]というエントリーが自動で作成されます。 今後はpush先などのサーバーをにURLで指定する必要がなく、"orgin"と指定することができます。



ファイルを追加する

ファイルの追加方法は、まず必要なファイルを作成してから、「git add <ファイル名>」を実行するとファイルを追加してくれます。 「git add .」と実行するとカレントディレクトリにある新規ファイル全てを追加してくれます。

例:ファイル追加する

[paso ~] cd project/dev1
[paso project/dev1] echo "#Test Project  " > README.md
[paso project/dev1] git status
On branch master

最初のコミット

Untracked files:
  (use "git add <file>..." to include in what will be committed)

  README.md

nothing added to commit but untracked files present (use "git add" to track)
[paso project/dev1] git add .
[paso project/dev1] git status
On branch master

最初のコミット

Changes to be committed:
  (use "git rm --cached ..." to unstage)

  new file:   README.md

git addの正しい意味

「git add」はファイルを追加するという意味ではなく、追跡(tracking)対象にするということです。 追跡対象になると、その時点のスナップショットがインデックスという場所に登録(ステージング)されます。 このステージングされたもののみが、「git commit」の対象になります。 よって、「新規ファイル作成」 -> 「git add」 -> 「ファイルを修正」した直後に「git commit」を実行すると ステージングされているファイルは最初の「新規ファイル作成」時のものなので、「ファイルを修正」はコミットされません。 再度、「git add」する必要があります。

修正の確定 - git commit

ステージファイル(インデックスに登録されたファイル)をローカルリポジトリに反映するには「git commit」です。

例:git commit

[paso ~] git commit -m '初めてのコミット'
[master (root-commit) c351c2e] 初めてのコミット
 1 file changed, 1 insertion(+)
 create mode 100644 README.md
[paso ~] git status
On branch master
Your branch is based on 'origin/master', but the upstream is gone.
  (use "git branch --unset-upstream" to fixup)
nothing to commit, working directory clean

初回コミット時はリポジトリが空なので、ブランチもありません。 よって、Gitが「master」という名前でブランチを作成してくれます。