Git的一些基本概念
分支操作
Log查看
里程碑
恢复删除的文件
与人分享
一些原则新功能尽可能的开分支,但是定期合到master上来,不要把某一个分支长
时间的开发 使用git-flow
Git的几个关键知识点
只合并特定的分支特定文件
查看和远程分支的对比
git diff
查看今天的更改
- 设置自己的用户名和邮箱
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 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