git常用命令
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
git init --bare xxx.git
chown git:git -R xx.git
git branch dev // 创建dev分支
git checkout dev // 签出dev分支
git checkout -b release // 创建并切换到release分支
git merge master dev --no-ff //merge dev分支到master分支
git merge --abort // 遇到冲突时,取消这次merge
git branch -d <BranchName> // 删除本地分支
git push origin --delete <BranchName> // 删除远程分支
git branch -a // 查看分支
git rebase -i HEAD~4 // 合并前4次commit
git tag v0.9 //打一个init标签
git show v0.9
git push
git pull
git clone git@xiaolu289.com:/gitRepository/xxx.git
git status
git remote add origion git@xiaolu289.com:/gitRepository/xxx.git
git push -u origin master //-u参数关联本地分支到origin master
git diff HEAD -- readme.txt
git revert(回退时候更推荐使用) //生成一个新commit,该命令表示,撤销某个commitid的修改,如果需要撤销的是一个merge分支,则需要加
上-m参数以标识主干分支(主干分支以外的那个分支的修改将会被撤销,实际上是在主干分支上,将提交与上一版本比对,执行修改的反操作)
git reset --hard //会丢弃历史
git reflog 查看命令历史
git log --graph --decorate //显示图谱,显示修饰符
如果commit已经被push到远程仓库上了,也就意味着其他开发人员就可能基于这个commit形成了新的commit,这时你去reset,就会造成其他开发
人员的提交历史莫名其妙的丢失,或者其他灾难性的后果。
因此,一旦commit已经被push到远程仓库,那么是坚决不允许去reset它的。
reset和checkout区别
reset会把working directory里的所有内容都更新掉
checkout不会去修改你在Working Directory里修改过的文件
reset把branch移动到HEAD指向的地方
checkout则把HEAD移动到另一个分支
git branch -r 查看远程分支
git branch -r -d orgin/branch-name 删除远程分支
参考地址:https://segmentfault.com/a/1190000006185954
git checkout . && git clean -df // 可以放弃所有修改、新增、删除文件
git checkout . //放弃本地修改,没有提交的可以回到未修改前版本
git clean是从工作目录中移除没有track的文件.
通常的参数是git clean -df:
-d表示同时移除目录,-f表示force,因为在git的配置文件中, clean.requireForce=true,如果不加-f,clean将会拒绝执行.
git push origin feature-branch:feature-branch //推送本地的feature-branch(冒号前面的)分支到远程origin的feature-branch(冒号后面
的)分支(没有会自动创建)
git checkout HEAD^ 上一个版本
git checkout HEAD^^ 上上个版本
git checkout HEAD~100 上一百个版本
git rebase -i [startpoint] [endpoint] // 默认的终点是当前分支HEAD指向的commit(注:该区间指定的是一个前开后闭的区间)
所以。。。指定endpoint的时候,实际上是指定想要合并的commit的后面一个commit
参考自:https://www.jianshu.com/p/4a8f4af4e803