コンテンツにスキップ

Top

Windows から git server にアクセスしてなんかいろいろやる

本当はWindows上にgit serverを立てたかったけどかなり面倒っぽいので、サーバはUbuntu上に立てて、git for windows でアクセスする方法について述べる

■Windows側

https://gitforwindows.org/ をダウンロードしてインストール。

■Ubuntu側

sudo apt install git   
sudo adduser git    

サンプルのgitを作る

sudo su git   

cd ~
sudo mkdir git
cd git
sudo mkdir test.git
sudo chown -R git:git ./test.git
cd test.git

sudo git init --bare

これでサンプルのtest.gitができたのでwindowsからアクセスしてファイルを追加していく。


Windowsで git bashを起動

★以下は最初の1回だけやっておく。
コマンドプロンプト上でも問題ないはず。

git config --global user.name "ユーザー名"
git config --global user.email "メールアドレス"

きちんと設定されたかは、

$ git config user.name
$ git config user.email
でわかる。

これ設定しないくても動くけどpush時とか毎回ユーザー名きかれてうざいので設定すること。

どっか任意のディレクトリに移動(mkdirも使えるので作ってもよい)

文字化け対応 .bash_profile

export GIT_PAGER="LESSCHARSET=utf-8 less"

①clone する(最初の1回だけ)

git clone ssh://ユーザ名@gitサーバアドレス/gitディレクトリ

ユーザー名はここではgit、IPはgit server(Ubuntu)のIPアドレス、gitディレクトリはホームの ~/git/test.gitなので、

git clone ssh://git@192.168.1.1/~/git/test
(ディレクトリ名の最後のgitはなくてよい。要はtest.gitじゃなくtestでよい)

でtestというディレクトリができてその下が管理される。
(clone後、testというディレクトリ名は変更してもよい)

ソースコードとか管理したいやつをtestディレクトリ配下にコピーし、1個1個addしてたら気が狂うので、

git add --all

で一気に登録。

と言いたいところだけど、 node_module とか別に管理したくないやつもあるだろうから、

git add ディレクトリ

で必要なやつだけ管理する。

addしたときに、windowsからLinuxのgitサーバにaddすると、

warning: in the working copy of 'hoge.txt', LF will be replaced by CRLF the next time Git touches it
といったような警告がでてaddできないことがあるので、その場合は、
git config --global core.autoCRLF false
を実施し、勝手に変換しないようにする。

git statusとかでファイル名が文字化けする場合は、

$ git config --local core.quotepath false

以上!

git コマンド

git pull
最新の持ってくる。昔のを持ってくることも可能

git log
過去のcommitの履歴とか見れる。ここででてくるcommitのIDを使えばgit pull 444654bc03204b4c1f958e43a26bc154f5172ae4 みたいな感じでその時に戻せれる
(未commitのファイルがあるとあばばってなるのでそういうのない状態でやるがよろし)

git status
今の状態がみえる(addしてるかとか)

git diff
今変更してるやつの差分

git add
ファイルの追加(変更のたびに必要)

git commit -m コメント
git add したファイルをコミットする(コミットするだけでpushはしてない)

git push origin master
commitしたコードをpushする(これで確定。ほかの人からも見えるようになる)

い所う。

あとは間違ってcommitしたとかpushしたとかそのあたりどうやって戻すのか、とかいろいろあるけどまぁいいや。

以上!