原文链接:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
总结:
安装完后,tell it who you are:
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
创建repository:git init
提交:git add xxx.xxx
git commit -m “说明”
提交文件夹:git add src/*
查看改动:git diff
查看库状态:git status
查看命令历史: git reflog
查看提交历史:git log
关于删除/修改:参考:http://www.cnblogs.com/cposture/p/git.html
删除暂存区:git rm –cache 文件名
删除暂存区和工作区:git rm -f 文件名
删除版本库(回退): git reset –hard HEAD^/HEAD^^…/commit id
撤销修改/删除(让这个文件回到最近一次git commit或git add时的状态)
: git checkout –xxx.xx
下面是添加远程库
先关联:git remote add origin git@github.com:path/repo-name.git;
再推送:git push -u origin master//第一次推送master分支的所有内容;
git push origin master //之后推送
从远程库克隆: git clone git@github.com:michaelliao/gitskills.git
分支
查看分支:git branch
创建分支:git branch
切换分支:git checkout
创建+切换分支:git checkout -b
合并某分支到当前分支:git merge
删除分支:git branch -d
多个分支是共用一个暂存区的,注意切换之前要都提交完。
打标签:git tag v1 commit id
删除标签: git tag -d v1…
与远程库交互
本地主机的当前分支是master,远程分支是origin/master。
- git clone <版本库的网址
git fetch <远程主机名> <分支名> git fetch origin master
取回远程主机的更新以后,可以在它的基础上,使用git checkout命令创建一个新的分支。
git checkout -b newBrach origin/master
也可以使用git merge命令或者git rebase命令,在本地分支上合并远程分支。
git merge origin/master
git rebase origin/mastergit pull命令的作用是,取回远程主机某个分支的更新,再与本地的指定分支合并。
git pull <远程主机名> <远程分支名>:<本地分支名>
比如,取回origin主机的next分支,与本地的master分支合并,需要写成下面这样。
git pull origin next:master
如果远程分支是与当前分支合并,则冒号后面的部分可以省略。
git pull origin next
上面命令表示,取回origin/next分支,再与当前分支合并。实质上,这等同于先做git fetch,再做git merge。
如果合并需要采用rebase模式,可以使用–rebase选项。使用 git pull –rebase 选项即可很好地解决上述问题。 加上 –rebase 参数的作用是,提交线图有分叉的话,Git 会 rebase 策略来代替默认的 merge 策略。
git pull –rebase <远程主机名> <远程分支名>:<本地分支名>- git push命令用于将本地分支的更新,推送到远程主机。它的格式与git pull命令相仿。
git push <远程主机名> <本地分支名>:<远程分支名>
如果当前分支只有一个追踪分支,那么主机名都可以省略。
git push
如果当前分支与多个主机存在追踪关系,则可以使用-u选项指定一个默认主机,这样后面就可以不加任何参数使用git push。
git push -u origin master
另有-all -force参数,参考http://www.ruanyifeng.com/blog/2014/06/git_remote.html