博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Git相关小记
阅读量:7071 次
发布时间:2019-06-28

本文共 2612 字,大约阅读时间需要 8 分钟。

关于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可以查看本地和远程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操作,这样就可以重新进行合并操作

上述是正常的操作命令,下面是关于一些关于删除和撤销的命令.

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后面有三个后缀,

--soft重置commit,将头指针恢复,已经add的缓存以及工作空间的所有东西都不变容;

--mixed 就将头恢复掉,已经add的缓存也会丢失掉,工作空间的代码什么的是不变的;

--hard重置commit,并清空所有操作;

  • git rebase -i HEAD~n撤销指定位置的commit------在这之后会弹出对应的操作框,你需要将你将你要撤销的commit整行删除然后保存退出就可以了

  • git rebase --onto [目标commit] [起点commit] [终点commit]撤销指定位置的commit-----和上面的效果是一样的,解释下参数,第一个可以理解为你要撤销的前一个,第二个可以理解为你要撤销的那个,第三个一般写当前分支的名字(其实也就是最新的commit)

  • git revert HEAD^倒置最新一个commit的所有内容------可用于已经将commit推送的远端的情况.

  • git rm -r --cached [file_name/.] 取消git对于某个文件进行跟踪,该操作并不会真实的产出本地文件,如需删除需要将 --cached更换为--f

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是有风险的,玩不好就炸了.不要问我为什么!!!

  • git tag 默认展示该分支下tag标签新

  • git tag -a [version-name] -m "[tag-desc]"给当前分之增加tag

5. Git忽略文件

不要小看.gitignore文件的作用 !!!

它可以帮你在提交的时候省去很多麻烦,所以在写的时候可以仔细想一想再写.

当然如果你刚开是没想好,后面想不上,只是单纯的补一个文件路径上去是不行的,需要删除git的跟踪.

  • 命令如下

git rm -r --cached [file_name/.]

git add .

git commit -m "xxx"(建议使用git commit 写个详细的commit msg)

git push

6.工作小记

以下为个人观点

  1. commit的整洁性.
    • 目的: 方便自己和他人进行相关review

    我的做法:利用rebase合并commit或者进行reset之后重新commit.当你在一些开源代码进行pr的时候都要遵循和保证这个.

  2. 工作流
    • 目的: 保证代码的正确性,规范代码发布和开发流程,便于版本维护

总结一下,关于上面写的命令都是可以自己去git --help看看,看懂了加上一些其他Git文章的辅助,命令行就会写的很有底气了.

有则改之,无则加勉

转载于:https://juejin.im/post/5bc01905e51d451e13252fe1

你可能感兴趣的文章
网摘--2014年5月12日
查看>>
python作业
查看>>
浅析如何在Linux系统中如何安装软件
查看>>
windows常用命令(快捷命令篇)
查看>>
DNS配置,主从,子域,转发
查看>>
Python之collection系列
查看>>
接口实现单例模式
查看>>
rhel6 yum源配置文件
查看>>
Android ListView的使用
查看>>
Hyper-V:无法打开虚拟机XXX,因为虚拟机监控程序未运行
查看>>
FastSocket学习笔记~制定自已的传输协议~续~制定基于FastSocket的协议
查看>>
如何让你的SQL运行得更快
查看>>
WF4.0(2)----设计工作流
查看>>
《计算机组成原理》计算机有哪些分类?
查看>>
6.13. WWW::Mechanize
查看>>
分配给 主机的 Evaluation Mode 许可证已过期。建议升级许可证。
查看>>
Func<T,TResult>泛型委托
查看>>
雕虫小艺:Slider控件的制作(Flash)
查看>>
Jquery利用ajax调用asp.net webservice的各种数据类型(总结篇)
查看>>
PHP统计排行,分页
查看>>