博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
传说中的git到底怎么搞?安装、文件修改管理等
阅读量:5978 次
发布时间:2019-06-20

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

以下笔记总结与廖雪峰的课程,感谢大佬,传送门:www.liaoxuefeng.com

集中式 PK 分布式

  • 集中式版本库存放于中央服务器,分布式则每个人的电脑上都有完整的版本库
  • 分布式安全性更高,因为参与者都有完整的版本库,任何一个坏了都可以从别人那里复制
  • 集中式要求参与者必须联网,网速慢的时候很捉急,分布式则不需要
  • 分布式有个类似中央服务器的电脑,但仅仅是用来交换大家的修改

如何安装git?

  • git检查系统是否安装
  • 在Mac OS X上安装Git:安装homebrew,然后通过homebrew安装Git,具体方法请参考homebrew的文档:http://brew.sh/
  • 安装完成后,需输入如下命令配置账号:$ git config --global user.name "Your Name" $ git config --global user.email "email@example.com"
  • 注意,加了--global就意味着你电脑上的所有项目都是用这个账户

创建版本库repository

  1. 创建版本库
$ mkdir 文件名$ cd 文件名$ pwd //查看工作区复制代码
  1. 通过git init初始化这个版本库,将这个文件目录变成可以管理的仓库

提交文件到仓库

如果在本地工作区建了一个文件,比如通过vim 文件名建一个文件,如何提交到本地仓库呢?

  1. git add .或者文件名.表示提交全部,文件名则只提交指定的
  2. git commit -m 日志

如何掌握仓库状态?

  1. git status命令可以实时显示仓库状态,比如:
$ git statusOn branch masterChanges not staged for commit:  (use "git add 
..." to update what will be committed) (use "git checkout --
..." to discard changes in working directory) modified: readme.txtno changes added to commit (use "git add" and/or "git commit -a")复制代码

上面的结果告诉我们readme.txt被修改过了,但还没有准备提交的修改。

  1. git diff 文件名命令可查看具体修改了什么
$ git diff readme.txt diff --git a/readme.txt b/readme.txtindex 46d49bf..9247db6 100644--- a/readme.txt+++ b/readme.txt@@ -1,2 +1,2 @@-Git is a version control system.+Git is a distributed version control system. Git is free software.复制代码

从上面的命令输出看到,我们在第一行添加了一个distributed单词。

再使用git addgit commit -m后,使用git status即可查看提交后的仓库状态,如果所有修改的文件都被提交了,则可看见下方状态:

$ git statusOn branch masternothing to commit, working tree clean复制代码

如何回顾自己提交过的信息?查看每次提交的内容?

使用git log命令可打印从最近到最远的提交日志,如果嫌提交信息太庞杂,可加上--pretty=oneline参数,日志则会以行的形式展示:

$ git log --pretty=oneline1094adb7b9b3807259d8cb349e7df1d4d6477073 (HEAD -> master) append GPLe475afc93c209a690c39c13a46716e8fa000c366 add distributedeaadf4e385e865d25c48e7ca9c8395c3f7dfaef0 wrote a readme file复制代码

//最开始的一串数字是版本号

如何把某个文件退回历史版本?

  1. 使用git reset命令让文件回退版本
  2. 使用参数--hard HEAD^回退到上一个版本
  3. HEAD后面有几个^代表回退几个版本
  4. 也可以用HEAD~数字指定回退到具体版本

回退到历史版本后怎么再回来?

使用git reset --hard 版本号即可回到具体版本,但是,执行回退时的窗口一定不能关闭,否则就找不到未来的版本号了。

到了某个版本,如何查看版本内容?cat 指定文件即可查看该文件内容。

万一手贱关闭了窗口或者电脑咋整? git reflog拯救你

!!!!关于工作区--暂存区--版本库--add--commit:git diff 是只比较比较工作区和暂存区(最后一次add)的区别,git diff --cached 是只比较暂存区和版本库的区别,git diff HEAD -- filename 是只比较工作区和版本库(最后一次commit)的区别。

如何撤销修改?

  1. 情况一:只在工作区修改了,并未add及commit,可用git checkout -- filename指令撤销
  2. 情况二:在工作区修改了,并add到了暂存区,可用git reset HEAD <file>把暂存区的修改撤销掉,但是此时工作区仍然是修改了的,再使用情况一的方法即可完全撤销修改。
  3. 既add又commit了,那就参考上面退回历史版本

如何删除文件?

当你要删除文件的时候,可以采用命令:rm test.txt

这个时候(也就是说这个时候只执行了rm test.txt)有两种情况

  1. 第一种情况:的确要把test.txt删掉,那么可以执行
git rm test.txt                   git commit -m "remove test.txt"                   然后文件就被删掉了复制代码
  1. 第二种情况:删错文件了,不应该删test.txt,注意这时只执行了rm test.txt,还没 有提交,所以可以执行git checkout test.txt将文件恢复。

并不是说执行完git commit -m "remove test.txt"后还能用checkout恢复,commit之后版本库里的文件也没了,自然没办法用checkout恢复,而是要用其他的办法。

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

你可能感兴趣的文章
Redis实现分布式锁2
查看>>
【Udacity】线性回归方程 Regression
查看>>
前端架构设计1:代码核心
查看>>
RPC 框架通俗解释 转自知乎(洪春涛)
查看>>
获取cookie后,使用cookie进行接下来的自动化操作
查看>>
算法笔记--数论模板小集(待增)
查看>>
SASS初学者入门(转)
查看>>
C语言100个算法经典例题(七)
查看>>
轻松实现远程批量拷贝文件脚本(女学生作品)
查看>>
Nmap在pentest box中的扫描及应用
查看>>
测试组合索引
查看>>
四、物理优化(2)索引视图
查看>>
【沟通之道】头脑风暴-女人的心思你别猜
查看>>
钱趣多风控新举措:源头选择与物理隔离
查看>>
puppet最新源码包安装学习笔记
查看>>
烂泥:kickstart无人值守安装CentOS6.5
查看>>
Windows Phone 8 开发资源汇总
查看>>
互联网趋势关键词:交流,为价值付费,资源整合
查看>>
阿里钉钉,马云旗下的又一个千亿美金产品?
查看>>
Oracle 11gR2学习之三(创建用户及表空间、修改字符集和Oracle开机启动)
查看>>