Git服务器:
在/home/下
mkdir git-test
cd git-test
git init --bare git-test.git
Git客户端:
mkdir git-client
cd git-client
git clone root@xxx.xxx.xxx.xxx:/home/git-test/git-test.git
cd git-test
touch readme
git add .
git status
git commit -m "add readme"
git push origin master:master
坑:
服务器端老老实实用git init --bare初始化仓库,不要用git init,--bare这种方式的特点是不带工作区,不支持git的push/pull/commit等常规操作,好处是不与客户端(工作区)冲突。
关于gitignore的使用:
经过上面的几步,我们已经得到了一个基本的master分支,以及提交了第一个文件readme。这时候很多同学特别着急的去把项目代码拷贝到GIT文件下,的确能用,但是等你用IDE编译一次后才发现无意中GIT跟踪了很多用不到的文件,典型的如IDE的配置文件、“.o”文件、“.tmp”文件、and so on...
这时候你本意只改了一个文件,但git status一看已经淹没在一堆临时文件的海洋中了。这时你可能突然想到git支持忽略功能啊,一股脑的百度谷歌后信心满满的添加了一个.gitignore文件,然后提交再编译再看git status,突然心里骂了句“WC?”,这堆临时文件怎么还是被监控到了。
重点:已经被提交到仓库的文件无条件进行版本控制,也就是说当你已经把这个临时文件(temp.o文件)提交到远端后,你远程和本地的.git文件已经存储了它的信息,这时gitignore对temp.o文件是无效的。
正确的打开姿势是这样的:
先分析你的工程临时文件的种类,编写.gitignore文件并上传到远端,再把工程代码添加到本地,这时你用git status查看一下,你要忽略的文件已经没有被跟踪了,最后提交到远端over。
网友评论