常用命名
- 初始化一个仓库
git init
- 添加文件
git add file1
- 查看修改
git diff --cached == git status
- 提交文件
git commit -m ""
提交完文件后, 会生成版本号
- 创建分支
git branch dev
以当前分支建立一个dev分支
- 切换分支
git checkout dev // 切换到dev分支上 git checkout -b dev 创建并切换
- 合并两个分支之间的代码
git checkout master
git merge dev 合并dev 和master的内容
- 合并代码的时候,有冲突, 需要解决冲突, 命令
git diff
编辑完冲突文件,然后commit
- 提交了commit后,可以用gitk 看合并的历史
gitk 查看编辑详情
- 删除分支
git branch -d dev
- 撤销一个合并
git reset --hard HEAD
git reset --hard ORIG_HEAD
快速向前合并
通常一个合并会产生一个合并提交,把两个父分支里的每一行内容都合并进来
但是,如果当前分支和另一个分支没有内容上的差异,git会执行一个快速向前操作,git不创建任何新的提交
- 查看git 历史
git log v2.5
git log master
git log file
git log origin file
git log -p 显示补丁信息
git log --stat 日志统计
- 比较提交
git diff master dev
git diff HEAD
- 获取远程代码
git fetch 抓取代码,但是不会与本地的代码合并
创建标签
git tag stable-1 1b2e23231
rebase的方式合并
- 先本地commit
git add .
git commit
- 保存分支获取远程
git checkout dev
git rebase origin
这个会把本地提交的取消,放到patch里面去,然后更新远程,然后在用补丁与远程合并
3 冲突
出现冲突,先解决冲突,解决完冲突后,用git add 去更新这些文件的索引
无需要commit
然后执行
git rebase --continue
这样git就会
继续引用apply余下的补丁
可以用
git rebase --abort 来终止 这样的话 dev 会回到rebase开始前的状态
- 储藏
git stash "work in progress for foo feature"
git stash list 储藏队列
高级用法
拉取代码,并且合并代码
git pull // 拉取并合并
git fetch // 只拉取,不会合并
git merge origin/分支名
以远程分支,新建本地分支
git fetch -b 分支名 origin/分支名
网友评论