git使用笔记
1、clone分支
git clone xxxx.git
2、checkout分支
从已有的分支创建新的分支(如从master分支),创建一个dev分支
git checkout -b dev
查看本地分支
git branch
查看远程分支
git branch -a
3、拉最新代码
git pull origin xxxfenzhi
4、查看日志
git log
5、查看修改
查看文件修改
git status
查看所有修改
git diff
查看单个文件
git diff demo/project.properties
查看有哪些工具可以对比修改文件的
git difftool --tool-help
使用工具查看修改
git difftool --tool=vimdiff2
:q 退出工具 [c ]c 定位到上下修改的地方
6、忽略某个在仓库中管理的文件
本地修改不提交到远程仓库
git update-index --assume-unchanged index.jsp
取消本地忽略
git update-index --no-assume-unchanged index.jsp
7、提交代码
git status
git diff
如果是新建的文件
则git add <file>
如果是修改的文件
则git add <file>
如果是删除的文件
则 git rm <file>
提交代码
git commit -m "xxxxxxxx"
推送到远程分支
git push origin xxxxxfenzhi
8、已经推送到远程分支发现错误回滚的方法
提交错误之后的修复方法:
git reset --soft HEAD^ //回滚一个commit状态。能回到add之后那里
然后再commit一次
然后git push -f origin xxx //强推,即利用强覆盖方式用你本地的代码替代git仓库内的内容
9、远程覆盖本地:必杀技
git fetch --all
git reset --hard origin/xxxxxfenzhi
$ git fetch
$ git merge
这2句命令等价于
$ git pull
10、rebase合并分支
git log
q
git checkout mubiaofenzhi
git pull origin mubiaofenzhi //拉下要rebase的目标分支的代码到本地
git log
q
git checkout issusxxx //回到当前的分支
git rebase mubiaofenzhi
……解决冲突
git add -u //添加修改
git rebase --continue
git add -u
git rebase --continue
……rebase成功 已经把mubiaofenzhi的代码合并到了issusxxx分支上
git checkout mubiaofenzhi
git merge issusxxxx //这时候应该不会有冲突了,因为分支issusxxxx和mubiaofenzhi的代码已经一致了
git log
git checkout issusxxx
git log
git checkout mubiaofenzhi
git push origin mubiaofenzhi
11、删除分支
删除本地分支
git branch -d fenzhi
强制删除本地分支
git branch -D fenzhi
删除远程分支
git push origin :branch-name
冒号前面的空格不能少,原理是把一个空分支push到server上,相当于删除该分支。
12、使用git pull文件时和本地文件冲突怎么办
(1)先将本地修改存储起来
$ git stash
这样本地的所有修改就都被暂时存储起来
用git stash list可以看到保存的信息
(2)pull内容
暂存了本地修改之后,就可以pull了。
git pull
还原暂存的内容
git stash pop stash@{0}
系统提示如下类似的信息:
Auto-merging c/environ.c
CONFLICT (content): Merge conflict in c/environ.c
意思就是系统自动合并修改的内容,但是其中有冲突,需要解决其中的冲突。
(3)解决文件中冲突的的部分
其中Updated upstream 和=====之间的内容就是pull下来的内容,====和stashed changes之间的内容就是本地修改的内容。碰到这种情况,git也不知道哪行内容是需要的,所以要自行确定需要的内容。
解决完成之后,就可以正常的提交了。
git stash的使用
git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。
git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。
git stash list: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
git stash clear: 清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。
比如你需要恢复stash@{1}这时候你需要做的是:
git checkout fcaa18f
git stash apply stash@{1}
http://www.cppblog.com/deercoder/archive/2011/11/13/160007.aspx
13.使用checkout ,回滚文件
$ git checkout -- src/main/filter/dev-filter.properties
http://blog.csdn.net/arkblue/article/details/9871983
14.打tag
----------------------------
Git 中的tag指向一次commit的id,通常用来给开发分支做一个标记,如标记一个版本号。
打标签
git tag -a v1.01 -m "Relase version 1.01"
注解:git tag 是打标签的命令,-a 是添加标签,其后要跟新标签号,-m 及后面的字符串是对该标签的注释。
提交标签到远程仓库
git push origin -tags
注解:就像git push origin master 把本地修改提交到远程仓库一样,-tags可以把本地的打的标签全部提交到远程仓库。
删除标签
git tag -d v1.01
注解:-d 表示删除,后面跟要删除的tag名字
删除远程标签
git push origin :refs/tags/v1.01
注解:就像git push origin :branch_1 可以删除远程仓库的分支branch_1一样, 冒号前为空表示删除远程仓库的tag。
查看标签
git tag
或者
git tag -l
15、撤销提交
git reset –soft commitid:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
git reset –hard commitid:彻底回退到某个版本,本地的源码也会变为上一个版本的内容
----------------------------
其他命令
cd d:/
d:/
ls
q
:q
ipconfig 查询ip
open . 打开文件夹