关于Git是什么,或者一些使用Git项目的我就不说了,只说一下简单的命令和我常用的到东西,建议先敲命令再用可视化工具
- 常用命令
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可以查看本地和远程branch
git 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操作,这样就可以重新进行合并操作
上述是正常的操作命令,下面是关于一些关于删除和撤销的命令.
- 删除命令
git branch -d [branch-name] 删除指定分支——-当前操作的branch不能进行删除操作,
如果要删除的分支没有向master分支进行合并,那么强制删除是需要将-d更换成-D,这里需要多一句,
本身branch就是一个引用,删除的只是引用,并不是真正的删除,
Git的自动将回收机制会在一定时间内回收.所以branch是可以恢复的,但是一定要是在Git没有回收之前.
git push origin :[branch-name] 删除远程分支——-这个并不是真正的删除远程,只
是推送了一个空的分支,看着就像删除了一样.主要origin后面一定要有一个空格
- 撤销命令
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推送的远端的情况.
- 其他命令
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是有风险的,玩不好就炸了.
不要问我为什么!!!