你的位置:首页 > 操作系统

[操作系统]Git(Mac OSX下)

一、创建版本库

版本库又名仓库,英文名rspository,可以理解成一个目录,然后这个目录里的所有文件都可以被Git管理起来。

1.创建一个空目录:

$ mkdir learngit

/*进入learngit目录*/

$ cd learngit

/*显示当前目录*/

$ pwd

/Users/work/learngit

注:'$ ...'表示命令,'$ '不用手动输入,没用'$ '标注的都是"结果"

 

2.通过git init命令把这个目录变成Git可以管理的仓库:

$ git init

Initialized empty Git repository in /Users/work/learngit/.git/

Git就把仓库建好了,还告诉你是一个空的仓库。此时当前目录下会多出一个隐藏的.git目录,这个目录是Git来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了,用ls -ah命令就可以看见。

 

添加文件到Git仓库,分两步:

第一步,使用命令git add <file>,注意,可反复多次使用,添加多个文件;

第二步,使用命令git commit,完成。

 

0.0懒得详细写了,可以去http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000廖雪峰的网站学习,这边我就记录些常用的命令吧。

 

添加文件:

$ git add <file>

提交:

$ git commit -m "<descr>"

-m "xxx"用来添加备注信息的(虽然可不加,但强烈建议添加备注,作为一个程序员这是最基础的)

 

查看历史纪录:

$ git log

可能你就觉得输出信息太多 眼花缭乱,可以加上--pretty=oneline参数:

$ git log --pretty=oneline

那串十六进制表示的就是commit_id

 

在git中HEAD表示当前版本,HEAD^表示上一个版本,上上一个就是HEAD^^,以此类推,还有一种写法就是HEAD~n,n表示往上n个版本

回退到上一个版本:

$ git reset --hard HEAD^

可能你已经不记得是上哪个版本了,也可以使用这个命令回退版本:

$ git reset --hard <commit_id>

注:<commit_id>不一定要写全,一般写前7位就没问题了

如果你已经回退到<commit_id>的版本了,可又后悔了 并且命令窗口也关闭了!此时git log是找不到之前的commit_id的,怎么办?

$  git reflog查看命令历史,你就又能找到未来那个commit_id了

 

查看文件内容:

$ cat <file>

 

查看工作区状态:

$ git status

 

如果git status告诉你有文件被修改过,用git diff可以查看修改内容:

$ git diff <file>

 

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令

$ git checkout -- <file>

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令

$ git reset HEAD <file>,就回到了场景1,第二步按场景1操作。

 

一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用rm命令删了:

$ rm <file>

此时工作区和版本库就不一致了,$ git status命令会立刻告诉你哪些文件被删除了,现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令$ git rm <file>删掉,并且

$ git commit -m "<descr>"

现在,文件就从版本库中被删除了。

另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:

$ git checkout -- <file>

$ git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。