Git
Git
是一个开源的分布式版本控制系统,是Linus Torvalds
为了帮助管理Linux
内核开发而开发的一个开放源码的版本控制软件。
几个名词概念:
工作区Working Directory
:git
初始化所在的目录
本地仓库Repository
:工作区目录下的.git
文件。
-
stage
(暂存区) -
master
(分支)
远程仓库(Remote Repository
)
流程
创建版本库
$ cd Document/study/learngit #进入到指定目录
$ git init #初始化Git仓库,该目录成为工作区
文件添加到本地分支
#需要提交的文本修改通通放到暂存区,然后一次性提交暂存区的所有修改到本地仓库
$ git add . #将文件所有修改添加到暂存区
$ git commit -m "msg" #将暂存区所有内容提交到本地分支
提交到远程仓库
#将本地仓库与远程仓库相关联,使用git协议前提是本机的ssh公钥添加在远程机器上
$ git remote add origin git@github.com:wangzhao995/learngit.git
#将本地仓库内容提交到远程origin master仓库,并将其设为默认仓库
$ git push -u origin master
#不需要指定仓库,默认提交到origin master
$ git push
注:Git
支持多种协议,git://
使用ssh
,也可以使用https
,但其速度慢,而且每次push
都必须要输入口令。
常用Git
命令
删除操作
$ rm file #删除文件
$ git rm file #将文件删除操作提交到暂存区,类似git add file
$ git commit -m "msg" #将暂存区所有内容提交到本地分支
查看当前仓库的状态
git status
查看工作区代码和本地分支的区别
git diff <file>
查看日志
git log[--pretty=oneline] #查看从最近到最远的提交日志
git reflog #记录每一次对本地分支的命令
撤销修改内容
git checkout -- <file> #将文件工作区的修改全部撤销,让文件回到最近一次git commit或git add时的状态
git reset HEAD <file> #将暂存区的修改撤销掉,重新放回工作区
回退版本
git reset --hard HEAD^ #回退到上一个版本
git reset --hard commitId #回退到指定commitId的版本
git reset
既可以回退版本,也可以把暂存区的修改回退到工作区。Git
的回退版本速度非常快,因为Git
在内部有个指向当前版本的HEAD
指针,当你回退版本时,Git
仅仅是把HEAD
的指向修改了,所以让HEAD
指向哪个版本号,就是当前版本号定位在哪。使用git reset --hard commit_id
穿梭前,用git log
可以查看提交历史,以便要回退到哪个版本,要重返未来,用git reflog
查看命令历史,以便确认要回退到哪个版本。
.gitignore
文件Git
工作目录下有些文件不能提交,比如Mac
下存储文件夹属性的.DS_Store
文件,如果多人开发的话,则会造成冲突。而.gitignore
文件则是专门解决这类问题,只需要在工作目录下创建该文件,然后把要忽略的文件名填进去,Git
就会自动忽略这些文件。
规则:
# 注释
a.txt #忽略所有名称为a.txt的文件
*.html #忽略所有.html结尾的文件
!a.txt #不忽略所有名称为a.txt的文件
/TODO #仅仅忽略项目根目录下的TODO文件
bulid/ #忽略build/目录下的所有文件
doc/*.txt #忽略doc子目录下的所有文件(不包含孙子目录)
Git
用户名和邮箱配置
git config user.name #输出当前git用户名称
git config user.email #输出当前git用户邮箱
git config --global user.name "username" #设置git的用户名称
git config --global user.email "email" #设置git的用户邮箱
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。