* Config
git config --global user.name 'blueyi'
git config --global user.email 'blueyiniu@qq.com'
* Clone
git clone git@github.com:michaelliao/gitskills.git //从远程库克隆一个本地库
* rm
git rm -r -n --cached "bin/" //-n:加上这个参数,执行命令时,是不会删除任何文件,而是展示此命令要删除的文件列表预览。
git rm -r --cached "bin/" //最终执行命令.
* Fetch
git fetch origin //把远端的版本库同步到本地
* Push & Pull
git pull就是分为git fetch和git merge两个命令来实现的,前者对版本库操作,后者通过版本库影响本地文件
`$ git checkout -b localbranch //`
$ git pull origin remotebranch:localbranch //当本地分支和远程分支名称相同时,只写一个就可以
//$ git pull origin dev: //dev 把远程分支pull下来,跟当前分支合并(该命令不能乱用,不理解)
$ git push -all //把所有本地分支都推送到远端
git push -u origin master //添加-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
git push --set-upstream origin dev //把本地分支推送到到远程服务器。
* Branch
git branch //查看当前分支
git branch -d dev //删除dev分支
git checkout -b dev //加上-b参数表示创建并切换,相当于以下两条命令。dev为分支名
上面的命令相当于一下两条命令:
git branch dev //创建分支
git checkout dev //切换到对应分支
git push --set-upstream origin develop //推送本地分支到远程
git branch --set-upstream-to=origin/<branch> Patient //本地分支Patient track 远程分支<branch>
* Merge
git merge dev //合并指定分支到当前分支。
git merge --no-ff -m "merge with no-ff" dev //分支合并,创建一个新的commit
* Rebase
* Stash
git stash
git stash list //查看保存的工作现场
通过两种方式恢复:
一是用git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash grop来删除
二是用git stash pop,恢复的同时把stash内容也删了。
git stash apply stash@{0} //恢复指定的stash
* Checkout
git checkout -f //回退所有新修改的内容
git clean -df //删除所有新增的文件
git checkout -- file //这个文件(file为文件路径)回到最近一次git commit或git add时的状态。
* Commit
git commit -m "append GPL" //提交修改到git -m 是修改注释
* Add
git add . //添加文件到暂存区
* Reset
git reset filePath //把暂存区的修改撤销掉(unstage),重新放回工作区
git reset 9027092d56c4f2c93e3ffd15baa9a02c91bed6e1 //回到某个特定的历史版本(中间的修改记录会回到工作区)
* Log
git log
git log -p -2 //查看命令
git log --pretty=oneline //简单显示
git log --graph //分支合并图
git log --graph --pretty=oneline --abbrev-commit //查看分支的合并情况
git log --graph --decorate --oneline --simplify-by-decoration --all //分支关系图
* Show
git show //显示最近一次提交的修改内容
git show commit_id //查看某次改动内容
git status //查看最近本地代码改动的结果。
git reflog //查看命令历史
* Tag
git tag //显示所有的tag列表
git tag -m "first release” 0.1.0
git tag -a 2.12.0 -m "release version 2.12.0” //打tag
git push --tags //把本地的tag推送到远程库上
git tag -d v1.1 //删除本地tag
git push origin -d tag V1.1 //删除远程tag
* Diff
git diff //查看当前修改
* remote
git remote prune origin //清理远程分支,把本地不存在的远程分支删除
* 删除远程分支
git push origin :branch-name //冒号前面的空格不能少,原理是把一个空分支push到server上,相当于删除该分支。
//或者这么写git push origin --delete currentBranch
### [修改最后一次提交](http://git-scm.com/book/zh/v1/Git-%E5%9F%BA%E7%A1%80-%E6%92%A4%E6%B6%88%E6%93%8D%E4%BD%9C#%E4%BF%AE%E6%94%B9%E6%9C%80%E5%90%8E%E4%B8%80%E6%AC%A1%E6%8F%90%E4%BA%A4)
有时候我们提交完了才发现漏掉了几个文件没有加,或者提交信息写错了。想要撤消刚才的提交操作,可以使用 --amend 选项重新提交:
$ git commit --amend
网友评论