Git的安装

在Window上安装Git

在Windows上使用Git,可以从Git官网直接下载安装程序,(网速慢的同学请移步国内镜像),然后按默认选项安装即可。

安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!

在Linux上安装Git

首先,你可以试着输入git,看看系统有没有安装Git:

1
2
3
$ git
The program 'git' is currently not installed. You can install it by typing:
sudo apt-get install git

像上面的命令,有很多Linux会友好地告诉你Git没有安装,还会告诉你如何安装Git。

如果你碰巧用Debian或Ubuntu Linux,通过一条sudo apt-get install git就可以直接完成Git的安装,非常简单。

老一点的Debian或Ubuntu Linux,要把命令改为sudo apt-get install git-core,因为以前有个软件也叫GIT(GNU Interactive Tools),结果Git就只能叫git-core了。由于Git名气实在太大,后来就把GNU Interactive Tools改成gnuit,git-core正式改为git。

如果是其他Linux版本,可以直接通过源码安装。先从Git官网下载源码,然后解压,依次输入:./config,make,sudo make install这几个命令安装就好了。

Git的使用

基础操作

工作区和暂存区的区别

1
2
工作区:就是你在电脑上看到的目录,比如目录下testgit里的文件(.git隐藏目录版本库除外)。或者以后需要再新建的目录文件等等都属于工作区范畴。
版本库(Repository):工作区有一个隐藏目录.git,这个不属于工作区,这是版本库。其中版本库里面存了很多东西,其中最重要的就是stage(暂存区),还有Git为我们自动创建了第一个分支master,以及指向master的一个指针HEAD。

git init

1
2
3
创建版本库。版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
首先,选择一个合适的地方,创建一个空目录。
第二步,通过git init命令把这个目录变成Git可以管理的仓库。

git add

1
把文件添加到暂存区。

git commit

1
2
git commit -m "提交注释"
提交更改,实际上就是把暂存区的所有内容提交到当前分支上。

git status

1
查看是否还有文件未提交。

git diff

1
查看待提交文件中有什么修改。

git log

1
显示从最近到最远的提交日志。

git reset

1
2
3
4
5
版本回退。
回退到上一个版本:git reset --hard HEAD^
回退到上上个版本:git reset --hard HEAD^^
回退到前100个版本:git reset --hard HEAD~100
直接回退到某个版本,可用git reflog查看过往所有版本:git reset --hard 6fcfc89

git reflog

1
查看过往所有版本记录。

git checkout – [filename]

1
2
放弃工作区的修改。
注意:命令git checkout -- readme.txt 中的 -- 很重要,如果没有 -- 的话,那么命令变成创建分支了。

远程仓库

添加远程库

1
2
3
先有本地库,后有远程库的时候,如何关联远程库。
可以把一个已有的本地仓库与之关联,然后,把本地仓库的内容推送到GitHub仓库。
要关联一个远程库,使用命令:git remote add origin git@github.com:[Github账户名]/learngit.git

从远程库克隆

1
2
3
假设我们从零开发,那么最好的方式是先创建远程库,然后,从远程库克隆。
远程库已经准备好了,下一步是用命令git clone克隆一个本地库:git clone [giturl]
拉取私有库:git clone [username]:[password]@[giturl]

git push

1
2
3
把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。
git push -u origin master第一次推送master分支的所有内容
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改

git pull

1
拉取远程仓库最新的文件。

分支管理

创建与合并分支

创建dev分支,然后切换到dev分支

1
2
3
4
git checkout -b dev
相当于:
git branch dev //创建dev分支
git checkout dev //切换到dev分支

查看当前分支

1
git branch //命令会列出所有分支,当前分支前面会标一个*号

合并分支

1
git merge dev //合并dev分支到当前分支

删除分支

1
git branch -d dev

解决冲突

当master分支和feature1分支各自都分别有新的提交,这时候必须手动解决冲突,修改之后保存再提交。

Git Bash不能显示中文

  • 原因
    在默认设置下,中文文件名在工作区状态输出,中文名不能正确显示,而是显示为八进制的字符编码。
  • 解决办法
    git bash 终端输入命令:
    1
    git config --global core.quotepath false

要注意的是,这样设置后,你的git bash终端也要设置成中文和utf-8编码,才能正确显示中文。

在git bash的界面中右击空白处,弹出菜单,选择选项->文本->本地Locale,设置为zh_CN,而旁边的字符集选框选为UTF-8。

英文显示则是: Options->Text->Locale改为zh_CN,Character set改为UTF-8