Git篇
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 [email protected]: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的用户邮箱
相关推荐
formula 2020-11-12
huhongfei 2020-11-05
乾坤一碼農 2020-10-27
liumengyanysu 2020-10-22
E哥的aws认证攻略 2020-10-15
guying 2020-10-05
好脑筋不如烂笔头 2020-09-17
baolen 2020-08-15
Equation 2020-08-09
Balmunc 2020-08-02
fenggou 2020-07-18
zhangxing 2020-07-05
loganwz 2020-07-05
87447007 2020-07-19
ArkShen 2020-07-05