Tuesday, June 10, 2014

git_notes

Git 笔记

Some basic concepts

repository 仓库,存储code的单元。
branch 分支,同一个代码库的不同版本控制路径,默认的主线是master,可以分叉出来开发测试新功能,完成后merge到master上。
commit 提交修改。
push推送到远程,默认推到original的repository。
pull 从远程repository取回代码。
一般远程的repository默认是origin, 另一个常用的名字是upstream,这个用于从一个已有的repository fork了一个副本后,自己的副本作为origin,原始的版本作为upstream。参加open source project常用到upstream。

文件状态

untracked 即没有加入到git的index
unmodified 没有个修改过的文件
modified 修改但尚未提交
staged 已经提交,上了舞台了。。

常用命令

git status检查所有文件的状态
git diff 检查文件修改前后差异
git branch 创建新分支
git checkout 切换分支
删除和ignore不同:
ignore只是忽略跟踪,但文件保留,删除是彻底删除,先删除文件再用git -rm xx.xx 实现彻底git上的删除。

深入

关于配置:
/etc/gitconfig 针对系统 git config –system
~/gitconfig 针对当前用户 git config –global
.git/config 针对当前 repository
git config –list列出当前所有配置。
提交代码最常用的配置是信息是用户名和邮箱。当你需要提交并push的时候会要求输user pwd验证身份。另一种选择是可以直接在本地产生一对公钥私钥 (ssh-keygen -t rsa -C “your_email_address”)。
所谓分布式版本控制。事实上是说没有一个主线处于支配地位。我的理解,在远程服务器比如github上也是一个类似本地的一个repository。所以你的机器如果在线,也能直接被clone。
.git文件下存储所有配置。(比如忽略某些文件,index等)

References:

GitHub详细教程
collaborate using git
git user guide
简单明了的一个教程:廖雪峰的git教程
Written with StackEdit.

No comments:

Post a Comment