转载自https://blog.csdn.net/xiangnicao/article/details/78719311
关于Git是什么,或者一些使用Git项目的我就不说了,只说一下简单的命令和我常用的到东西,建议先敲命令再用可视化工具
1. 常用命令
git init
会生成.git文件git remote add origin https://xxxxxxx.git
将本地git关联到远程中央库git add
后缀文件名可以指定添加某些文件到暂存区,或者后缀--all/.
可以将当前管理文件下的所有改动文件添加git commit
提交暂存区内更改,在这之后需要填写提交日志,也可以直接在后面追加-m "[message]"
合并操作git push origin [branch-name] -f
强制推送分支,用于已知的冲突的情况下,一般在公司不建议这样用git branch
查看本地仓库,后缀加-a
可以查看本地和远程branchgit branch [branch-name]
创建分支,但是并没有切换到该分支.git checkout [branch-name]
切换到指定分支,在checkout
后追加-b
会创建分支并切换git push
将本地推送到远程,如果本地是本地新建的分支需要建立推送关系,追加--set-upstream origin [origin-branch-name]
git pull
将远程拉取到本地git merge [branch-name]
将指定分支合并到当前分支,如果发生冲突需要先解决相关冲突进行更改git merge --abort
终止当前merge操作,这样就可以重新进行合并操作
上述是正常的操作命令,下面是关于一些关于删除和撤销的命令.
2. 删除命令
git branch -d [branch-name]
删除指定分支——-当前操作的branch不能进行删除操作,如果要删除的分支没有向master分支进行合并,那么强制删除是需要将-d
更换成-D
,这里需要多一句,本身branch就是一个引用,删除的只是引用,并不是真正的删除,Git的自动将回收机制会在一定时间内回收.所以branch是可以恢复的,但是一定要是在Git没有回收之前.git push origin :[branch-name]
删除远程分支——-这个并不是真正的删除远程,只是推送了一个空的分支,看着就像删除了一样.主要origin后面一定要有一个空格
3. 撤销命令
git reset --hard HEAD^
撤销最新一次的提交——当然也可以撤销之前很多的次的提交只需要更改HEAD后面的^的个数或者直接HEAD~n(n>=1)
,reset
后面有三个后缀,--hard
重置commit,并清空所有操作;git rebase -i HEAD~n
撤销指定位置的commit——在这之后会弹出对应的操作框,你需要将你将你要撤销的commit整行删除然后保存退出就可以了git rebase --onto [目标commit] [起点commit] [终点commit]
撤销指定位置的commit—–和上面的效果是一样的,解释下参数,第一个可以理解为你要撤销的前一个,第二个可以理解为你要撤销的那个,第三个一般写当前分支的名字(其实也就是最新的commit)git revert HEAD^
倒置最新一个commit的所有内容——可用于已经将commit推送的远端的情况.
4. 其他命令
git checkout XXX
+git checkout -b [branch-name]
这样就可以恢复指定分支,XXX是通过git reflog
找到的sha-1值找你删除前的最后一次操作,一般都是moving from [del-branch-name] to master,这个就要看你找的对不对了.还有一个特殊情况就是log已经被删除了或者引用呗回收那就无力回天了(反正我是不知道怎么恢复,有大佬,请留言).git stash
+git stash pop
这个是一个小技巧吧,就是将当前工作目录的改动藏匿起来.场景就是在你正在写什么东西的时候老板来一句:给我把那个什么给我打个包.呵呵哒!!!然后我们add-commit-checkout-打包-reset-继续写代码,这尴尬了!有了这个就可以stash-checkout-打包-stash pop-继续写代码.reset是有风险的,玩不好就炸了.不要问我为什么!!!