git是目前世界上最先进的分布式版本控制系统。好处是比较不会与同事有冲突。。。
linux下可以直接用yum安装git,然后通过git --version查看版本 验证是否安装成功。
接下来我们就创建git的版本库,首先找个合适的地方,创建一个空目录:
mkdir -p /data/git/
然后通过git init命令把这个目录变成Git可以管理的仓库:
cd /data/git/
这个时候就提示我们创建了一个空的仓库 。。。
然后我们在/data/git目录下编辑一个learn.txt文件进行测试,必须在git的目录下,因为git是一个仓库,放在其他地方git找不到的。。。
接下来可以通过git add 命令将文件添加到仓库,一般执行完没有任何提示就对了
然后再通过git commit 命令把文件提交到仓库;-m是对你提交的文件进行说明,必须要有-m哦,不然别人怎么知道你提交的是什么内容还是修改了什么?
你也可以多次add不同的文件,然后通过一次commit一起提交上去,但是必须先add然后在commit。
git status 可以查看当前仓库的状态。我们试着修改刚才的learn.txt文件,然后用git status查看,提示如下
可以看出我们修改了内容但是还没有准备提交。
git diff learn.txt 可以对我们前后修改的内容进行对比:
版本回退:
现在我们修改learn.txt的多个不同的版本进行提交以后,通过git log命令就可以查看到我们提交的多个不同的版本内容:
- 通过git log的内容我们可以看到一串很长的commit id(版本号),我们可以通过git reset --hard HEAD^表示回退到上一个版本,HEAD^^表示回退到上上一个版本,以此类推。。。。也可以通过git reset --hard (2bf0d0)这其中的一个commit id 进行指定版本的回退,commit id只需要写前面几位就可以了。
当我们回退到某个版本后,关掉电脑以后忘记了回退到哪个版本,但是版本ID已经找不到了,该怎么办呢?
git reflog命令用来记录我们的每一次命令,可以通过这个命令进行查看我们回退过的版本ID是多少。。。git hub 自己百度添加
最后github远程库自己百度添加。。。把本机的ssh-key公钥添加到自己的远程库账号里,就可以连接远程库了。下面简要的说一下命令,具体百度知道。。
$ git push -u origin master
Counting objects: 19, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (19/19), done.
Writing objects: 100% (19/19), 13.73 KiB, done.
Total 23 (delta 6), reused 0 (delta 0)
To git@github.com:michaelliao/learngit.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.
要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git
;
关联后,使用命令git push -u origin master
第一次推送master分支的所有内容;
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master
推送最新修改;
git clone可以从远程库克隆一个本地库:
$ git clone git@github.com:michaelliao/data/learn-git.git
Cloning into 'learn-git'...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (3/3), done.
$ cd learn-git
$ ls
README.md
注意把Git库的地址换成你自己的,然后进入/data/learn-git目录看看,已经有README.md
文件了。