http://git.oschina.net/progit/
一、 撤销操作
1.1 修改最后一次commit
git add file
git commit ‘initial commit’
git commit –amend
作用:修改最后一次提交的commet
git add file
git commit –m ‘initial commit’
git add forgotten_file
git commit –amend
作用: 2次提交,只产生一个提交
1.2 取消已经暂存的文件
git reset HEAD <FILE>… //取消暂存
git checkout -- <FILE>… //取消对没有暂存的文件的修改
二、 远程仓库
2.1 查看远程克隆的地址
git remote –v
2.2 从远程仓库抓取数据
git fetch [remote-name] //从远程仓库抓取数据到本地
此命令会到远程仓库中拉取所有你本地仓库中还没有的数据。运行完成后,你就可以在本地访问该远程仓库中的所有分支,将其中某个分支合并到本地,或者只是取出某个分支,一探究竟。
git fetch origin
会抓取从你上次克隆以来别人上传到此远程仓库中的所有更新
有一点很重要,需要记住,fetch 命令只是将远端的数据拉到本地仓库,并不自动合并到当前工作分支,只有当你确实准备好了,才能手工合并。
git pull
自动抓取数据下来,然后将远端分支自动合并到本地仓库中当前分支
2.3 推送数据到远程仓库
git push [remote-name] [branch-name]
首先,可以通过 git remote –v 命令查看远程产库的名字。
如果要把本地的 master 分支推送到 origin
服务器上(再次说明下,克隆操作会自动使用默认的 master 和 origin 名字),可以运行下面的命令:
$ git push origin master
三、 分支
3.1 新建分支
git branch name
3.2 切换分支
git checkout name
3.3 新建与切换分支
git checkout –b name //新建并切换到分支name
3.4 删除分支
git branch –d name
3.5 归并分支
git checkout master // 首先切换到master分支
git merge name // 把分支name与master分支归并
git mergetool //归并时产生的冲突,可用该图形化工具去解决
3.6 分支管理
命令 |
含义 |
git branch |
列出所有的分支 |
git branch –v |
要查看各个分支最后一个提交对象的信息 |
git branch name |
新建分支name |
git checkout name |
进入分支name |
git checkout –b name |
新建并进入分支 name |
git branch –d name |
删除分支name |
git merge name |
把name分支与当前分支合并 |
git mergetool |
用图形化界面解决分支合并时的冲突 |
git branch --merged |
筛选出已经同当前分支合并的分支 |
git branch –no-merged |
筛选出同当前分支没有合并的分支 |
四、 协作
在集中式管理中,小团队之间的合作一般采用如下的方式提交代码
- git clone (url) // 下载远程origin 分支的代码到本地master分支上
- git checkout –b feature // 本地建立feature分支,并切换到本地的feature分支上
- 修改代码
- git commit // 提交feature分支的代码到本地仓库
- git checkout master // 切换到本地master分支
- git fetch origin // 下载远程origin分支的上最新的代码到本地master分支
- git log –no-merges origin/master feature // 查看下载了什么代码到本地
- git merge feature // 合并本地feature 分支上的代码到本地master分支上
- git merge origin/master // 合并远程origin分支与本地master分支的代码
- git mergetool // 如果上面的合并有冲突,用图形化界面工具修正冲突
- git add . // 再次提交有冲突的文件
- git push origin master // 提交本地master分支的代码到远程origin分支
五、 查看分支
git rev-parse feature //查看分支feature指向那次commit