git的安装.

请参照git官方网站.

git的基本配置

注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置, 当然也可以对某个仓库指定不同的用户名和Email地址。

$ git config --list 可查看配置项
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

创建版本库

在你建好的目录下,使用: git init 则可以初始化一个空的版本库.

将文件加入版本库

在实际应用中,我们初始化的版本库目录可能并非一个空目录,而是一个完整的项目,
那么如何将这个已有的项目与初始化的版本库关联呢。
使用:

git add <路径1> <路径2> <...> <文件1> <文件2> <...>

add 后面,可以添加文件,也可以添加目录
添加文件时,代表将指定文件加入缓存区,添加目录时它则会连同目录及目录下的文件也子目录一同加入缓存区,
那么,我们如果需要将整个项目加入缓存区时,需要怎么操作呢?不错
git add .
.代表什么,平常我们常常这么用./configure,对了,这个.即表示当前目录.

上面提到add只是将文件装入缓存区,如何才能加入到最终的版本库中呢,这时,我们需要一次commit git commit -m '我已经把项目与仓库关联好了.'
这样,我们的项目才真正意义与我们的仓库建立了联系.

git log 与 reflog

每当执行commit时都会产生一个log。

git log 默认会输出比较详细的内容
git log --pretty=online 则会在一行内输出信息
git reflog 会记更为详细的操作,比如,当版本退回到以前的版本时,你想切换回最新版片,此时reflog是多少重要.

版本滚动

git reset --hard HEAD^ 表示切换到前一个版本 其中HEAD表示当前版本^^表示前两个,以此类推,当然我们使用HEAD~100定位到前100个版本.

删除文件

rm read file.txt
git add file.txt
git commit -m '我删除了file.txt'

git rm file.txt
git commit -m '我也一样删除了file.txt'

效果一样.

撤销操作

rm file.txt

当文件或者目录从工作区中删除时,

git checkout -- <文件或目录>

当缓存区存在时,从缓存区恢复,当缓存区不存在时,从版本库在恢复.

git reset HEAD readme.txt

从版本库中直接恢复文件到缓存区和工作区 add 没有commit时要撤消

git reset .

git pull 失败 ,提示:fatal: refusing to merge unrelated histories

git pull origin master --allow-unrelated-histories

删除远程分支

如上所示,使用命令 git push origin --delete Chapater6 可以删除远程分支Chapater6

再次使用命令 git branch -a 可以发现,远程分支Chapater6已经被删除。

删除本地分支

使用命令,git branch -d Chapater8 可以删除本地分支(在主分支中)

拉取远程分支并创建本地分支

git checkout -b 本地分支名x origin/远程分支名x

本地分支早于远程支付,要丢弃本地分支使用远程分支内容

Your branch is ahead of 'origin/dev' by 28 commits.

git reset --hard origin/master