赞
踩
git config –global user.name XXXX
常用的配置属性还有user.email, color.ui, core.editor, alias
显示当前的配置信息
从其他仓库获取
初始化仓库
显示状态
增加和提交文件
git add files
git add -p 交互式,可选择
git commit -m “XXX” 直接提交已暂存文件
git commit -am “XXX” 直接提交未暂存文件
git commit
或者gitcommit -m
,则会跳转到编辑器中提示编写提交信息。编辑器类型可以通过git config --global core.editor XXX
设定git add
添加到暂存区 删除文件
git rm file 彻底删除某个文件
git rm –cached file 从版本库中删除,保留本地文件。即取消跟踪状态
重命名文件
显示提交日志
git log
git log -p 显示patch
git log –stat 显示改动的一个总结
git log –graph 只显示当前branch的
git log –graph –all 显示所有branch的
git log –graph –all –decorate 显示branch的名字
git log –pretty=oneline,short,full,fuller 输出不同的形式
git log –pretty=oneline, short, full, fuller 输出的log 形式不同
git log –pretty=format:”%h - %an, %ar : %s” 按照指定的格式输出
--pretty
的其他选项和具体的format格式,参考 git log --help
中PRETTY FORMAT这部分。git log –follow file
git log
是不能显示目录移动前的记录的。那就加上 --follow
吧显示日志筛选
git log -2 -p 显示最近两次commit的log 和 diff
git log –author=”liuquan” 筛选特定作者的log
git log –since=”2016-9-21” –before=”2016-9-22” 筛选时间段
git log –grep=”key word” 在commit 的message中查找关键字
git log dev –not master dev,但不在master上的记录。
git log -S”func_name” 查找某个字符出现,或者移出的commit。 比如可以查找一个函数是什么时候添加,或者删除的。
git show sha1 这个sha1是每个commit的sha1,这样显示某个commit的完全信息,包括diff
git log master ^dev 可以在merge前看看有哪些需要commit
撤销未提交改动
git checkout – file 撤销了未暂存区文件的改动
--
表明了这是一个文件,而不是分支的名字git checkout head file 暂存区和未暂存区的改动都会清除
git reset –hard head 撤销所有未提交的改动,包括暂存区和未暂存区
撤销已提交改动
git revert head 自动重新做一个commit,返回最后一次commit
git reset –hard~1 删除最近的一次提交(类似指针前移)
git reset –hard (SHA1) 回退已提交状态,包括暂存区和未暂存区(相当于回到文件初始状态,即上一次提交状态)
git reset –mixed (SHA1) 回退已提交状态,回到未暂存区
git reset –soft (SHA1) 回退已提交状态,回到暂存区
git commit –amend 提交最新,代替之前的提交
显示所做的改动
git diff 未暂存区VS本地初始文件(或者暂存区)
git diff –staged或者git diff –cached 暂存区VS本地版本库
git diff commit1 commit2 从commit1到commit2的变动
git blame -C file 显示文件的具体改动
git blame -L n,m file 查看n、m两行间的改动
git blame commit1~1 -L n,m file 查看commit1版本之前的改动
git blame commit1~1 -L n,m – oldfile
如果这个文件被命名过,或者移动过,就要输入旧文件的名字。
而且一定要加上 --
显示分支
git branch
git branch -v 显示详细点的信息
git branch –merged
创建分支
git branch XXX
git checkout -b XXX
git branch XXX commit1
切换分支
图形化显示分支信息
gitk
gitk –all
合并分支
删除分支
处理冲突
查看哪些分支合并了
git branch –merged
git branch –no-merged
备份工作区
显示tag
git tag
git tag -l v3.0 匹配显示
git show XXX 显示某个tag的详细信息
创建tag
git tag -a XXX -m “XXXXX”
git tag -s XXX -m “XXXXX”
git tag -a XXX SHA 对某个指定的SHA大tag
推送tag,默认情况是不会推送tag到远端的
git push origin XXX
git push origin –tags 推送所有标签
验证tag
-s
签名的tag显示远端信息
git remote
git remote -v
git remote show origin
添加其他远端库
从远端下载
git fetch XXX
git pull 下载更新后直接merge
了
git clone
上传
删除远端分支
同步
git fetch 同步状态
git fetch -p 可以清空远端已经不用的分支
git branch -v 可以看到本地仓库中分支的状态。
git branch -av 可以看到远端和本地分支的状态
git checkout XXX 换到你想要更新的local branch上
git rebase origin/XXX 这样可以将本地做的commit 取下,并重新apply到最新的地方。
patch相关
git apply patchfile 从patchfile中应用这个patch。 效果和patch命令类似。
apply
要么成功,要么不成功。而patch
可能有部分的patch打上了,有的没有打上。
git apply
后,并没有自动生成一个commit
git apply –check 可以用来检测这个patch是不是会产生冲突或者失败
git am patchfile 专为git设计patchfile,patchfile是通过git format-patch
生成的,会自动生成一个commit
git am –resolved
git am
过程中可能会有conflict. 若遇到conflict,就需要手动修改code,git add
后用git am --resolved
可以学习一下git制作patch
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。