一篇很好的入门git的博文:
http://www.cnblogs.com/angeldevil/p/3238470.html
(我实在是没有办法抱着砖头一样厚的书看,即使我能把书看完,学到的东西也不一定能用到,于是会很快忘记,所以很喜欢这样的入门文章)
下面是学习笔记,也就是我自己的理解,所以有可能有错,欢迎指正。
0.参数
--xxx 一般和 -x 等价
1.修改至提交
一般步骤:
git add ->git commit ->git push
git add 使修改内容写入本地缓存
git commit 本地缓存写入本地版本库
git push 本地版本库提交到远程端
所以一个文件有可能同时是未缓存(unstaged)和未提交的(to be commited):
git add之后,未提交,并再次修改文件
2.git add
git add 不仅可以把untracked 的文件转为tracked,还可以使修改内容加入缓存
3.git rm
svn中直接用文件系统的 rm,然后再svn rm 好像会报错
但是git可以先 rm 再 git rm
如果不想删除文件,只想去掉跟踪(tracked)可以用:
git rm <filename> --cached (没试过)
4.git add -i
使用git add -i可以开启交互式暂存
交互式暂存是什么东西???
5.git clean
清除所有未跟踪文件
一般会加上参数-df,-d表示包含目录,-f表示强制清除。
6.git stash
感觉有些想暂存状态的堆栈,没用过,不过感觉是挺实用的功能。
7.tag和branch的区别
tag“就像是一个分支引用,但是不会变化——永远指向同一个 commit,仅仅是提供一个更加友好的名字。”
还是没有明白,貌似都是指向commit的指针,区别是什么呢?
tag不能用于合并吗?
tag是静态点标签?branch对应动态的修改吗?
8.配置文件位置
--system: /etc/gitconfig
--global: ~/.gitconfig
--local :
当期工作目录/.git/config
9.repo
10.书单+=
11.svn 和 git对比
图中水印应该是出处,这样应该不算是侵权吧?
12.子集
0.git init
1. git clone
2. git add
3.git commit -m"messge"
4.git push -u <远程主机名> <本地分支名>:<远程分支名> (http://www.yiibai.com/git/git_push.html)
5.git pull
6.git ls-files
7.git status
8.git rm
9.git remote add <远程端名字> <项目url,如git@git.com:xxx/xxx.git>
10.git config -l
11.git config --global push.default matching
12.git config --global user.name "xxx"
13.git commit -a 等价于
git add xxx
git commit