您的位置:首页 > 其它

你应该知道的Git基础

2017-06-20 20:37 363 查看


你应该知道的Git基础

设置自己的用户名和邮箱

git config –global user.name "Your Name"
git config –global user.email "you@example.com"


修改到提交之间有一个缓存区
提交到缓存区 
git
add .
 当前所有修改提交到缓存区,也可以单独指定
git
diff --cached
 查看缓存区和本地仓库里的差异
git
diff HEAD
 查看已缓存和当前的区别
git
diff
 查看当前未缓存的和本地仓库里的区别
git
diff --stat
 显示摘要

撤销缓存区里的一个更改,例如hello.rb 
git
reset HEAD -- hello.rb

git
rm file
 将file从文件缓存区、本地目录中移除
git
rm file --cached
 只从缓存区移除,保存本地目录中的


分支操作

git
branch
 列出可用的分支
git
branch jser.me
 创建jser.me分支
git
checkout -b jser.me
 检查jser.me分支是否存在,不存在就创建,并且切换过去
git
branch -d jser.me
 删除分支jser.me
git
merge
 其它分支合并到当前分支
git
checkout -b gh-pages origin/gh-pages
 检出并且设置当前分支为远程分支gh-pages


Log查看

git
log --oneline
 紧凑查看
git
log --graph
 图形显示
git
log erlang ^master
 查看只在erlang分支里的修改
git
log --grep
 正则取一个log
git
shortlog master
 生成一个简报


里程碑

git
tag -a v1.0
 打上v1.0


恢复删除的文件

git
checkout commitid -- pathfile


与人分享

git
remote
 列出远端的别名
git
remote add remotename remotepath
 以remotename命名remotepath
git
remote rm remotename
 删除别名为remotename的远程仓库
git
fetch
 只下载
git
pull
 下载并更新
git
push remotename branch
 推送本地分支branch到远程仓库remotename的branch分支


一些原则

新功能尽可能的开分支,但是定期合到master上来,不要把某一个分支长时间的开发 使用git-flow


Git的几个关键知识点

有三种状态:
暂存 staged
修改 modify
已经提交

git status
前面状态有两列,头一列是暂存区的改动情况,如果你commit,它会提交,第二列是当前共工作区的状态,它是不会被提交的


冲突之后的解决

找到冲突的地方,手工解决,然后
git
add filename; git commit


只合并特定的分支特定文件

使用命令 
git
cherry-pick #commitid

checkout方法 
git
checkout branch -- filename


查看和远程分支的对比

先把远程分支搞到本地 
git
fetch origin master:temp
, 从远程的origin仓库的master分支下载到本地并新建一个分支temp
比较分支 
git
diff temp

合并特定的文件,参考上面的
删除无用的分支 
git
branch -d temp


git diff

只显示有对比的文件 
git
diff 608e120 4abe32e --name-only

配合搞成压缩文件 
git
diff 608e120 4abe32e --name-only | xargs zip update.zip

如果不是查看每个文件的详细差别,而是统计一下有哪些文件被改动,有多少行被改 动,就可以使用‘–stat’ 参数。
diff指定的文件


查看今天的更改

git
log --since=1.days


子模块

git submodule init 新拉下来的库,初始化所有的子模块
git submodule add submodule-git-url local-name 给当前库添加一个子模块,路径为submodule-git-url, 文件夹名为local-name,一般我们把local-name和子模块的名字保持一致
git submodule foreach some-git-command 遍历子模块,并执行some-git-command,比如批量更新所有的子模块
git
submodule foreach git pull origin master
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: