Git是目前世界上最先进的分布式版本控制系统,可以自动记录和管理文件的改动,还可以团队写作编辑,也就是帮助我们对不同的版本进行控制。2008年,GitHub网站上线,为开源项目提供免费存储,迅速发展成为最流行的分布式版本控制系统,没有之一。
安装Git
windows下直接下载安装程序,然后默认安装即可,安装完成后通过Git Bash打开类似于命令行窗口的界面,则说明安装成功。
安装成功后,需要添加自己的username和email,相当于表明身份,自报家门。
$ git config --global user.name "username"
$ git config --global user.email "your email"
创建版本库
创建一个新的文件夹目录,然后进入到该目录,输入git init
即可将次目录变为git可以管理的仓库。需要注意的是:git只支持文本文件,比如txt,代码,网页等,可以使用Notepad++编辑器,使用utf-8编码格式。
将文件添加到仓库,分两步:添加和提交
$ git add <file> 可以多次add,添加多个文件
$ git commit -m <message>
时光机穿梭
- 两个常用命令:掌握工作区的状态:
git status
,如果有文件被修改过,可以使用git diff
查看修改内容 - 版本回退:HEAD指向的是当前版本,HEAD^是上一个版本,在版本之间切换的命令是
git reset --hard commit_id
,穿梭前,可以使用git log
查看提交历史,确定要回退到哪个版本;重返未来,可以通过git reflog
查看命令历史,确定要回退的版本号。 - 工作区和暂存区:工作区是在本地可以看到的仓库文件夹目录,而暂存区(stage)是版本库中的暂存区域,
git add
命令实际就是将要提交的修改先放到暂存区(stage),然后,执行git commit
就可以一次性将暂存区的修改内容都提交到对应的分支。
![](https://img2018.cnblogs.com/blog/1608161/201904/1608161-20190409220505290-1750450610.png)
- 管理修改:Git管理的是修改,而不是文件,只有add到暂存区的修改,才能使用commit提交。
- 撤销修改:(1)如果想直接丢弃工作区的修改时,使用命令:
git checkout -- file
(2)当已经add到暂存区,想丢弃修改时,分为两步:先用命令git reset HEAD <file>
,然后再用丢弃工作区内容的命令进行修改。(3)如果已经将修改commit到了版本库,可以进行版本回退来进行修改(前提是没有推送到远程库)。 - 删除文件:要想删除一个文件,直接从工作区中删除文件,然后使用命令
git rm <file>
和git commit -m <message>
删除在版本库中的文件。 - 文件恢复:如果误删了本地资源文件,可以使用命令
git checkout -- <file>
从版本库中恢复。
远程仓库
Git是分布式版本控制系统,实际使用场景:有一台服务器,其他所有的用户都从这个服务器克隆一份到自己的电脑,然后把各自的提交推送到服务器仓库,也可以从服务器仓库拉取别人的提交。GitHub就是提供仓库托管服务的。
- 添加SSH密钥:在github账户里添加自己电脑的ssh公钥
- 添加远程库:在github网站创建新仓库
create a new repo
,然后在本地仓库下使用命令git remote add origin git@github.com:<name>/<github repo>.git
将本地仓库与远程库进行关联。 在关联后,使用命令git push -u origin master
第一次推送master分支的所有内容,此后,在每次本地提交时,可以使用git push origin master
推送到远程库。这里需要注意:如果推送出错,原因是远程仓库的readme和本地不同步,可以先使用命令git pull --rebase origin master
进行合并,然后再推送。 - 从远程库克隆:先创建远程库,然后克隆到本地进行操作。克隆命令:
git clone git@github.com:<name>/<github repo>.git
.
总结
本文主要总结了git使用的本地仓库和远程仓库的主要操作命令,后续对git分支管理进行详细介绍。