Git

Git是一个开源的分布式版本控制系统,是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。

几个名词概念:
工作区Working Directorygit初始化所在的目录
本地仓库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的用户邮箱

好久不见
89 声望8 粉丝