Git for Windowsの設定例

便利に使うためにいくばくかの設定が必要

1.globalなgitignoreの設定

gitを使うための標準的な手順としては、git init, git add. git commitそしてソースの変更でまたgit add, git commit適宜git pushというような流れかと思います。git add .とした時に除外するファイルやフォルダを指定するための設定が.ignoreファイルですが、特定のディレクトリ以下での設定をいちいち書くのは面倒なので、globalなものをまず設定しておきましょう。私が使っている環境で例えばBash for git(windowsですよ)で、

$ git config --global core.excludesfile

とすると、

C:/Users/jakeb/.gitignore_global

となり、このファイルの内容は

#ignore thumbnails created by windows
Thumbs.db
#Ignore files build by Visual Studio
*.obj
*.exe
*.pdb
*.user
*.aps
*.pch
*.vspscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.cache
*.ilk
*.log
*.dll
*.lib
*.sbr
#cbb
*.tds
Win32/
Win64/
__astcache/
__history/
__recovery/
*.res
Project1.cbproj.local

となっていて、基本的にVisual Studio用のignoreファイルにcbb(C++ Builder)要素を加えた物です。

2.実際の運用例 簡単化するために、C++ Builder CEのIDEでなく素のBash for Gitからbccでプログラムを作るサイクルでの例を示します。IDEからGitを使うやり方はまた別記事で。

このディレクトリで使って見ます。hello.cの内容は、

#include <stdio.h>

void main(void)
{
	printf("hello, world\n");
}

で、K&Rの最初のプログラム。ここのディレクトリの何もないところで、右クリック

出てきたプルダウンメニューから”Open Gif Bash here”を選択する。以下、

jakeb@Orbit-11 MINGW64 ~/test-git
$ bcc32 hello.c
Embarcadero C++ 7.70 for Win32 Copyright (c) 1993-2017 Embarcadero Technologies, Inc.
hello.c:
Turbo Incremental Link 6.99 Copyright (c) 1997-2024 Embarcadero Technologies, Inc.

jakeb@Orbit-11 MINGW64 ~/test-git
$ ./hello
hello, world

jakeb@Orbit-11 MINGW64 ~/test-git
$ git init
Initialized empty Git repository in C:/Users/jakeb/test-git/.git/

jakeb@Orbit-11 MINGW64 ~/test-git (main)
$ git add .
warning: in the working copy of 'hello.c', LF will be replaced by CRLF the next time Git touches it

jakeb@Orbit-11 MINGW64 ~/test-git (main)
$ git commit -m "first commit"
[main (root-commit) 6a275d5] first commit
 1 file changed, 6 insertions(+)
 create mode 100644 hello.c

jakeb@Orbit-11 MINGW64 ~/test-git (main)
$ git status
On branch main
nothing to commit, working tree clean

ここでlocalなgiteaサーバー(別記事で)上にリモートレポジトリ(最初は空)を作る。

コマンドラインから既存のリポジトリをプッシュ
git remote add origin http://192.168.0.230:3000/nao/foobar.git
git push -u origin main

というアドバイスが出るので、その通りに実行してみる。git pushの時に、以下のダイアログが出ます。

Username and/or Passwordを正しく入れると通ります。

$ git remote add origin http://192.168.0.230:3000/nao/foobar.git

jakeb@Orbit-11 MINGW64 ~/test-git (main)
$ git push -u origin main
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Delta compression using up to 12 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 287 bytes | 287.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
remote: . Processing 1 references
remote: Processed 1 references in total
To http://192.168.0.230:3000/nao/foobar.git
 * [new branch]      main -> main
branch 'main' set up to track 'origin/main'.

hello.cに少しだけ手を加えて

$ bcc32 hello.c
Embarcadero C++ 7.70 for Win32 Copyright (c) 1993-2017 Embarcadero Technologies, Inc.
hello.c:
Turbo Incremental Link 6.99 Copyright (c) 1997-2024 Embarcadero Technologies, Inc.

jakeb@Orbit-11 MINGW64 ~/test-git (main)
$ git add .
warning: in the working copy of 'hello.c', LF will be replaced by CRLF the next time Git touches it

jakeb@Orbit-11 MINGW64 ~/test-git (main)
$ git commit -m "touched"
[main 028868b] touched
 1 file changed, 1 insertion(+), 1 deletion(-)

jakeb@Orbit-11 MINGW64 ~/test-git (main)
$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 12 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 312 bytes | 312.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
remote: . Processing 1 references
remote: Processed 1 references in total
To http://192.168.0.230:3000/nao/foobar.git
   6a275d5..028868b  main -> main

2回目以降のpushはgit pushだけでオーケー。

コメント