在Windows上安装Git
- [下载地址](https://git-for-windows.github.io)
- 安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!
- 安装完成后,还需要最后一步设置,在命令行输入:
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
创建版本库(repository)
1 首先,选择一个合适的地方,创建一个空目录:(Windows系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文。)
$ mkdir learngit
$ cd learngit
$ pwd //pwd命令用于显示当前目录
/Users/michael/learngit
2 通过git init命令把这个目录变成Git可以管理的仓库:
- 当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的
- 如果你没有看到.git目录,那是因为这个目录默认是隐藏的,用
ls -ah
命令就可以看见。
$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/
把文件添加到版本库
1 创建文本
- 只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等
- 不要使用Windows自带的记事本编辑任何文本文件,用编辑器书写。
- 使用标准的UTF-8编码
- 一定要放到learngit目录下(子目录也行)
2 用命令git add告诉Git,把文件添加到仓库:(可一次添加多个文件)
$ git add file2.txt file3.txt
3 用命令git commit告诉Git,把文件提交到仓库
$ git commit -m "wrote a readme file //该文件的注释说明"
时光机穿梭
- 要随时掌握工作区的状态,使用git status命令。
- 如果git status告诉你有文件被修改过,用git diff可以查看修改内容。
git status
命令可以让我们再提交之前,时刻掌握仓库当前的状态,包含变化的状态
$ git status
git diff
可以在提交之前查看文件修改的内容
$ git add readme.txt
版本回退
1 git log
命令显示从最近到最远的提交日志,查看历史纪录
$ git log
//或
$ git log --pretty=oneline
2 退回之前的版本$ git reset --hard ...
- HEAD表示当前版本;上一个版本就是HEAD;上上一个版本就是HEAD^;往上100个版本写成HEAD~100
$ git reset --hard HEAD^
- 查看此版本的内容
$ cat readme.txt
- 命令
git reflog
用来记录你的每一次命令:
$ git reflog
$ git reset --hard 3628164
工作区和暂存区
- 工作区 就是在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区:
- 版本库 工作区有一个隐藏目录.git,是Git的版本库。
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD - 第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;
第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。
撤销修改
$ git checkout -- readme.txt
- 一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
- 一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。
- 总之,就是让这个文件回到最近一次git commit或git add时的状态。
删除文件
- 删除工作区中的文件
$ rm test.txt
- 删除版本库中的文件
$ git rm test.txt
$ git commit -m "remove test.txt"
- 误删了,将文件恢复到最新版本
$ git checkout -- test.txt
远程仓库
一、添加到远程仓库
1 关联远程仓库
$ git remote add origin git@github.com:michaelliao/learngit.git
2 把本地库的所有内容推送到远程库上
$ git push -u origin master
//或
$ git push origin master
- 关联后,使用命令git push -u origin master第一次推送master分支的所有内容;
- 此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;
- 当远程仓库中存在README.md文件,而本地仓库没有时,需要先将该文件下载到本地仓库中,再进行把本地文件上传远程仓库的操作,命令如下:
git pull --rebase origin master
二、从远程库克隆(下载)
$ git clone git@github.com:michaelliao/gitskills.git
- Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。
分支管理
一 创建和合并分支
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
将本地分支推送到远程新建分支上
git push origin feature-xiehe-parking:feature-lfqiluyuan-parking