http://blog.sina.com.cn/s/blog_4ce89f2001014qvr.html
1.git clone 从远程的Git版本库克隆代码,也可以理解成检出代码,可以在末尾指定新的名字
eg. git clone git://github.com/someone/some_project.git some_project
2.git remote -v 查看远程仓库
3.git remote rm [name] 删除远程仓库
4.git remote set-url --push [name] [newUrl] 修改远程仓库
5.git pull [remoteName] [localBranchName] 拉取远程仓库
eg. git pull origin master
6.git push [remoteName] [localBranchName] 推送远程仓库
eg. git push origin master
7.git add
git add test.txt #注意,要gitignore一些特殊文件,然后每一>次提交前git status,确认提交的每一个文件
git add - A
git add *.c #用通配符的方式跟踪文件
8.git commit -m "msg"
9.git config
git config --global user.name "myname" #设置用户名
git config --global user.email "myemail" #设置邮箱
git config --global core.editor "myeditor" #设置编辑器
git config --list #查看config
10.git status #查看git状态
eg.# On branch master
nothing to commit (working directory clean) #可以看到当前branch
11.git commit -m 'initial commit' #修改最后一次提交,重新提交
git add forgotten_file
git commit --amend
12.git checkout -b 分支名字 #添加分支
eg.git checkout -b branch1 添加branch1分支
git checkout 分支名称 #好像是进入分支
git commit -m "注释" #提交到分支
eg.git checkout branch1
git commit -m "branch1 init" #应该是提交到了branch1,等下验证
13.git checkout master #返回主分支
git merge 子分支名称 #合并子分支到主分支
eg.git merge branch1
git branch -d 子分支名称 #删除子分支
eg.git branch -d branch1
git branch #查看分支
14.在使用git push 代码到数据仓库时,提示如下错误:
[remote rejected] master -> master (branch is currently checked out)
这是由于git默认拒绝了push操作,需要进行设置,修改.git/config文件后面添加
如下代码:
[receive]
denyCurrentBranch = ignore
15.git checkout – 文件名 #放弃单个文件的修改
16.忽略某些文件: vim .gitignore
# 此为注释 – 将被 Git 忽略
*.a # 忽略所有 .a 结尾的文件
!lib.a # 但 lib.a 除外
/TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
build/ # 忽略 build/ 目录下的所有文件
doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
17.查看尚未暂存的文件更新了哪些部分,不加参数直接输入 git diff
eg.git diff #此命令比较的是工作目录中当前文件和暂存区域快照之间的差>异,也就是修改之后还没有暂存起来的变化内容
18.要看已经暂存起来的文件和上次提交时的快照之间的差异,可以用 git diff --cached 命令
19.设置git使用vimdiff比较差异
git config --global diff.tool vimdiff
git config --global difftool.prompt No
20.git commit -a -m 'added new benchmarks' #跳过使用暂存区域,直接提交
21.移除文件:要从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除(确切地说,
是从暂存区域移除),然后提交。
eg.git rm grit.gemspec
git rm --cached .project #移除已提交的文件
22.git mv README.txt README 移动文件
相当于: mv README.txt README
git rm README.txt
git add README
23.查看提交历史
eg.git log #默认不用任何参数的话,git log 会按提交>时间列出所有的更新,最近的更新排在最上面。
git log -p -2 #我们常用 -p 选项展开显示每次提交的内容>差异,用 -2 则仅显示最近的两次更新
git log --stat -1 #git log统计,非常好用
24.vimdiff的使用: git difftool
25.修补提交(修补最近一次的提交而不创建新的提交)
eg.git commit --amend -m "commit message."
26.提交冲突时可以合并后再推送
git pull # 获取远程版本库提交与本地提交进行合并
git push # 提交
27.git fetch 与 git pull 都是从 remote 端取信息,在不接参数时,git fetch 与 git pull 有如下不同.
1. git fetch 可以在一个 bare类型的repository内执行,而git pull 不可以
2. git fetch 只从远程端取repository信息,如新的branch,tag,及新的代码变化>,也就是更新.git或bare型repository中的内容
但 git fetch 不会 checkout出任何代码
git pull 不仅会执行git fetch的操作,git pull 还做了merge的操作。\
28.git revert
git revert HEAD #撤销前一次 commit
git revert HEAD^ #撤销前前一次 commit
git revert <hash> 撤消指定的版本如:fa042ce57ebbe5bb9c8db709f719cec2c58ee7ff
29.检出分支
git checkout -b william_template origin/william_template
git pull
30.取消没有跟踪前的修改
git checkout anilist.php