git版本控制入门

一. 为何要用版本控制系统

1. 更方便的存储版本git

2. 恢复以前的版本github

3. 更方便的进行对比正则表达式

4. 协同合做缓存

二. git.exe安装

三. 简单配置

没有进行配置会出现警示信息,经过命令配置bash

git config --global user.name "cnhkzyy"               #配置用户名
git config --global user.email "1069966476@qq.com"    #配置联系邮箱

查询最小用户配置分布式

git config --global --list

 

四. 创建git仓库

1. 已有目录的时候测试

cd file_folder
git init

(1) 已有一个目录,测试报告fetch

 

 

(2) 进入测试报告目录,点击"Git Bash Here"url

 

 

(3) 执行"git init",能够看到测试报告目录下出现了一个.git目录spa

 

 

这里面存储了版本控制信息

 

2. 没有目录的时候

cd file_folder
git init projectsname   #从新命名一个新的目录

在 测试git 目录下,执行git init demo,会生成一个demo的新目录,demo目录下的.git目录,保存着版本信息,demo下没有项目内容,咱们能够添加项目内容

五. git配置优先级

git config --local     local只对仓库有效。缺省等同于local

git config --global   global对登陆用户全部仓库有效

git config --system  system对系统的全部用户有效

 

优先级:local > global > system

六. git版本提交

git add file            #执行完会把文件存到临时空间

git add .               #添加该目录下的全部文件

git commit -m "版本信息"      #正式提交到git仓库

(1) 在demo目录下新建一个测试报告.txt文件,文件内容为"test"

(2) 把文件添加到暂存区

 

(3) 提交

(4) 查看提交

 


 

(1) 在本地新建一个readme.txt文件,文件内容为"欢迎来到git世界"

 

七. 版本状态查看

git status

git status -s            能够用简短的信息进行阐述

git status --short

(1) 往readme.txt里更新一段文字:"git是一个分布式的版本控制系统"

(2) git status,能够看到文件被更新,但没有被提交,readme.txt为红色

(3) 使用git add readme.txt提交到暂存区后,再次使用git status查看,发现,readme.txt变为绿色

(4) 使用git status -s 查看更简短的信息,发现只有一个绿色的M,M表示修改已被提交到暂存区

(5) 新添加一个文件,new_file.txt,使用 git status -s 查看,发现前面有个红色的??,??表示新添加的文件,尚未提交到暂存区

(6) 使用git add new_file.txt,将new_file.txt提交到暂存区,而后使用 git status -s 命令查看,发现前面有个绿色的A,A表示新添加的文件

(7) 正式提交到仓库,git commit -m "注释",这里我打的有点问题,一不当心跟成了文件名。而后使用git status -s 查看,发现没有内容了

 

八. git历史版本查看

git log   最简单的使用

git log --pretty=oneline   只显示一行

git log -p  显示版本之间的差别

git log -5  显示最近5个版本

git log -5 -p  显示最近5个版本及他们之间的差别

git log --stat  查看大致的统计信息

(1) git log查看最新三次提交的日志(时间顺序倒序)

(2) git log --pretty=oneline,显示简短的提交信息

(3) git log -p 查看版本之间的差别

(4) git log -2 查看最近提交的两个版本

(5) git log -2 -p

(6) git log --stat 查看大致的统计信息

九. 忽略文件gitignore

# 注释

glob 模式匹配,比较相似正则表达式匹配

* 星号,匹配0或者任意字符

[abc]  任何一个在括号内的字符

?  匹配一个任意字符

/  结束指定目录

!  取反

(1) 借助vscode,新建下面几个文件和目录

(2) 编辑.gitignore文件,写入如下内容

(3) 全部更改暂存,而后提交,发现demo.pyc也提交了,有点诡异

十. 版本比对

git diff  在未提交到缓存区以前,比对版本之间的差别

git diff 老版本  新版本

git diff --staged   已经添加到暂存区的差别

git commit -a -m "注释"   添加并提交修改到git仓库

(1) 在未修改文件以前,git diff 发现无内容,在demo.py中新增 import time,而后执行 git diff,发现有内容了

(2) 在使用了 git add . 命令暂存以后,再使用 git diff,发现没内容了

(3) 修改demo.py,新增内容"time.sleep(2)",使用git commit -a -m "time sleep"能够一步到位,将修改内容添加到git仓库

 


 

(1) git diff 老版本commit哈希值  新版本commit哈希值 ,哈希值能够是一部分。若是想对比老版本和新版本的差别,git diff 新版本 老版本便可

(2) 在demo.py文件中加入一行 print("Hello World!"),而后git add . ,这时候使用 git diff --staged,发现了提交到暂存区后的差别

(3) 使用git commit 提交到git 仓库后,发现git diff --staged没有内容

十一. rm删除文件

git restore --file   暂存以前:不将文件添加到暂存,老的git版本是git checkout -- <file>

git restore --staged <file>   暂存以后:删除文件的暂存,老的git版本是git reset HEAD <file>

git rm file   添加到git仓库以后:删除文件,本地和版本控制系统都删了

git rm --cached file   添加到git仓库以后:删除文件,版本控制系统删了,本地还存在,若是想从新提交可使用 git add和git commit

git rm *.pyc

(1) 在demp.py中新增一行代码,执行 git status

(2) 执行git checkout -- demo.py后发现那一行消失了

(3) 从新加入一行print("Hey"),提交到暂存区,再从暂存区删除,最后使用git status查看状态

(4) git rm 测试报告.txt,发现删除了本地没有了,git rm --cached new_file.txt,发现删除了本地仍然存在

(5) git rm .*pyc,删除全部的.pyc文件

(6) 删除后要git commit 提交一下

 

 

十二. mv移动文件

git mv 老文件名  新文件名

 

等价:

mv  老文件名  新文件名

git rm  老文件名

git add  新文件名

(1) 先建立一个doc目录,将readme.txt移动到doc下,并更名字为read.txt,最后提交到git仓库

(2) 将demo.py移动到doc/下,新的路径为doc/demo.py

删除旧的demo.py

将新的doc/demo.py添加到暂存区

提交到git仓库

 

十三. 文件补录

git commit --amend   有时候提交过一次记录只有,又修改了一次,仅仅是改动一些较少的内容,可使用git commit --amend

(1) 新增了一条代码,这时候使用git commit -amend -a提交到git仓库

(2) 可使用git diff 老版本 新版本  查看新老版本的差别

 

十四. 标签

放在生产环境的版本,须要迭代,通常须要打标签

git tag -a tagname -m "提交信息"   附录标签

git tag tagname  轻量标签

git show tagname  

 

git tag   显示全部的标签

git tag -a tagname  补录标签

git tag -l "v1.8*" 匹配全部以v1.8开头的标签

git tag -d tagname   删除某个标签

(1) 打附录标签

(2) 查看标签

(3) 打轻量标签

(4) 查看轻量标签

 

 

 


(1) 显示全部的标签

(2) 匹配全部以v开头的标签

(3) 使用git log,查看全部提交记录,想把Hello World这个提交打个标签,使用git tag -a v0.0.0 ed3350

(4) 删除某一标签qingliangv1

 

十五. checkout 检出

git checkout 版本号

git reflog   查看全部的日志

git checkout 标签名

(1) git checkout 版本号  检出到某一版本,此时使用git log,只能查看当前版本以后的记录

(2) 要想查看全部记录(包括以前的)使用 git reflog

(3) 根据标签名检出

 

十六. 别名

git config --global alias.st 'status'     给status起别名st

git config --global alias.last 'log -1 HEAD'   给查案最后一行记录起别名 git last

git config --global alias.logol 'log --pretty=oneline'  给一行显示全部记录起别名git logol (未生效)

(1) 给git status设置别名 git st

(2) 给查看最后一条记录,起别名git last

 

十七. github的使用

十八. git远程地址

git remote 查看远程地址

git remote -v

git remote add 名称  远程url

(1) 添加远程地址

 

十九. 远程push和pull

git remote show 远程名字

git push 远程名字 master(分支名称)

git fetch 远程名字

git pull 远程名字

(1) git remote show git_study

(2) git push 仓库名 分支名

 

 

(3) 在github项目下建立一个新的文件test_fetch,git fetch 远程名字,git fetcn经过用在多个分支的状况,它会手动进行分支的合并,在只有一个分支的状况下,建议使用git pull,git pull会自动合并

刚刚新的文件没有显示在本地,是由于没有合并

 

 

本地也有了

 

 

 

二十. 远程名字修改

git remote rename 旧名字 新名字

git remote rm 远程名字

(1) 修改远程名字为study

 

(2) 删除远程仓库

 

(3) 从新添加远程仓库

 

 

二十一. 克隆远程项目

git clone url

(1) 在本地新建一个new_project的目录,在里面打开git bash,而后使用git clone 项目url,能够克隆远程项目到本地

相关文章
相关标签/搜索