Git入门(一)
什么是git
Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。注意,git和github是区别的,后面会讲到。
安装git
下载git工具:https://sourceforge.net/projects/git-osx-installer/
也可以从这里选择多版本:http://git-scm.com/downloads
然后按照流程安装就好了~
如果你想用代码的形式安装也很方便,可以使用brew
没有brew的小朋友建议顺便也装一个:/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
然后就可以直接 brew install git 来完成git的安装
查看是否安装成功,可以在terminal中输入:git --version
初始化git目录
选择一个目录作为git目录,然后输入以下命令来初始化该git目录,并设定用户名和邮箱(非强制):
git init
git config —global user.name “MrDoghead” 以及 git config —global user.email “mrdoghead@gmail.com”
注意,使用--global 选项,那么该命令只需要运行一次,之后无论你在该系统上做任何事情, Git 都会使用那些信息。
初始化后,该目录下会生成一个.git的文件(勿动!)
这个时候,我们可以通过以下命令查看git的状态
git status [-s] #查看git状态
git log [—oneline] [—graph] # 查看日志
git的各个状态
请看下面这个网上扒拉下来的图
简单来说,最开始的状态就是untracked,比如我们随便新建一个文档,写入hello world,然后查看一下git状态
vi demo # 写入
git status
# 下面是结果
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
demo
nothing added to commit but untracked files present (use "git add" to track)
然后我们觉得这个文档写的挺好的,就add一下吧(使用add命令)
git add demo
# git add *
再查看一下状态
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: demo
然后我们要决定当前分支提交一下(commit命令)
git commit -m "init"
# -m 后面可以加上注释
再次查看状态,就变成了
On branch master
nothing to commit, working tree clean
之后如果尝试对文档进行改动,再查看状态,就会变成modified状态
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: demo
no changes added to commit (use "git add" and/or "git commit -a")
现在我们尝试add和commit一步到位,可以这样
git commit -am “first change”
# 状态又变成
On branch master
nothing to commit, working tree clean
查看前后文件区别
查看unstaged和staged文件的差别,也就是之前add完的和现在修改的区别
git diff
查看这次staged和上一次staged区别
git diff -cached
对staged文件修改后,查看两者区别
git diff HEAD
想要在不改变版本的情况下(log不变)修改版本内容(会改变commit id)
git commit —amend —no-edit
对了,版本号可以在log中查看哦
To be continued...