作为程序员,git的使用一定是必须的。在正式入职之前,把git好好搞明白了。就可以省去入职以后再git上面的学习时间啦,so good!
这篇博客主要功能是一个学习笔记,也是根据别人的博客进行自我消化总结出的一篇,主要目的是自我复习,提醒自己一些关键的地方不要忘记,对于读者来说,由于描述不连贯的原因,可能会有阅读难度。希望大家转向原博文,原博文非常浅显易懂。
链接在此:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
git有什么作用呢?
版本控制。简单来说,git可以记录每次你对程序的改动。无须手动再记录了。
另外值得一提,git这种分布式管理系统的首个作者居然是Linus!!!也是linux的创建者,Linus果然是程序员之神,大牛中的大牛啊!
如果Linux操作系统中恰好没有git,那么安装一下也非常简单。
sudo apt-get install git
创建版本库
第一步,选择合适的目录。
第二步,让目录变成可以管理的仓库
git init
3. 添加文件
完成一个文件之后,置于git监控的目录之下。执行命令
git add file_name
4. 修改提交到仓库
git commit -m "write a reason"
git commit 的 -m后面跟着的是提交的说明和解释。这样,查看每次修改的内容就显而易见了。这个提示非常重要,认真写。这样你才能知道你每次对代码修改了什么。
5.掌握仓库当前状态
git status
这个命令只能告诉我们哪个文件被修改了。知道了被修改的文件之后,我们可以用git diff命令查看究竟是哪些地方进行了修改
git diff xxx
显示的一个例子如下:
-好后面是原始的代码or文本形式
+号后面是修改过后的代码or文本形式。
git status可以方便的指导哪些文件已经被修改过了。
git diff可以用来查看文件汇总哪些内容被修改了。
修改后的所有文件都要重新git add。
6. 查看git操作的历史记录
git log
如果输出信息太多,你受到干扰。可以使用下列命令,只输出主要信息
git log --pretty=oneline
注意,所有log是从新往旧排列的。
下面开始回退文件版本了。HEAD代表当前版本,HEAD^代表上一个版本,HEAD^^代表上上个版本,以此类推,也可以用数字表示HEAD~100。
回退完了,又后悔了怎么办?可以找到你要回到的那个版本号。用下列命令
git reset --hard XXXXXXX
版本号写前面若干位就可以了。只要保证是唯一的即可。
你是一定能找到原来的版本号的,只要用了如下命令
git reflog
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file
。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file
,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
总结:需要记住的git 命令:
1. 在一台新的电脑上,重新部署git环境时,需要设置:
$ git config --global user.name "Your Name" $ git config --global user.email "email@example.com"
2. 创建版本库命令
git init # git 添加文件 git add xxx.xxx # git 提交 git commit -m "xxx"
# 查看状态
git status
# 比较同一个文件 如果git status
告诉你有文件被修改过,用git diff
可以查看修改内容。
git diff xxx.xxx
# 查看提交的历史记录 git log # git log 简化版 git log --pretty=oneline # 版本回退 git reset --hard 版本号 # 查看每一次的命令, 注意和git log 的区别 git reflog
git add之后,立即进行git commit
撤销修改:
$ git checkout -- readme.txt
一种是readme.txt
自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
一种是readme.txt
已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
git checkout -- file
命令中的--
很重要,没有--
,就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到git checkout
命令。
Git同样告诉我们,用命令git reset HEAD file
可以把暂存区的修改撤销掉(unstage),重新放回工作区:然后git checkout -- file 就彻底丢弃掉修改了。