git是一个分布式管理系统
基本命令
将目录变成git可管理的仓库
git init
添加文件到git仓库
git add
git commit -m "message"
查看添加结果
git status
查看修改内容
git diff README.txt
查看历史记录
git log --pretty=oneline
回退到上一个版本
git reset --hard HEAD^
上上个版本用HEAD^^
git reset --hard 1094a
查看历史git命令
git reflog
查看工作区和版本库里面最新版本的区别:
git diff HEAD -- readme.txt
丢掉工作区的修改
git checkout -- readme.txt
将远程库与本地仓库关联
git remote add origin <address>
将本地仓库的内容添加到远程库中
git push -u origin master
git 分支管理
创建并切换分支
git checkout -b dev
查看当前分支
git branch
切换到 master分支
git checkout master
合并指定分支到当前分支
git merge dev
删除分支:
git branch -d <name>
查看分支合并图
git log --graph --pretty=oneline --abbrev-commit
禁用fastforward的git merge,默认fastforward看不出曾经有合并,用–no-ff参数合并后的历史有分支。
git merge --no-ff -m "merge with no-ff" dev
当遇到一个bug时,我们可以通过新的临时分支来修复,修复将临时分支删除。
把当前工作现场存储起来
git stash
查看工作现场
git stash list
工作现场恢复
git stash apply
git stash drop
或者
git stash pop
在创建新功能的时候最好新建一个feature 分支在上面开发,完成后合并删除该分支。
丢弃一个没有合并过的分支
git branch -D <branch_name>
在本地创建和远程对应的分支
git checkout -b branch-name origin/branch-name
建立本地分支和远程分支的关联
git branch --set-upstream branch-name origin/branch-name
丢弃工作区的change
git stash save --keep-index --include-untracked
合并git log:
首先用git log找到需要合并log的前一个log id
然后运行如下命令
git rebase -i <log_id>
最后运行
git push -f