三、GIT

一、基本介绍

1. git介绍

  • 开源,分布式,版本控制系统
  • Linux/Unix、Solaris、MacOS,Windows
  • git下载官网

2. 安装-windows

  • 建议只装git bash(黑屏)
  • 安装完成后右键桌面,可以看见git bash
  • git --version查看当前版本

3. 环境配置

1. 配置用户名
# 提交代码时候的用户名和邮箱
# 设置用户名和邮箱(可中文)
git config --global user.name "username"    
git config --global user.email "username@email.com" 
# 查看配置的参数是否生效
git config --global --list 
2. 生成SSH
# 点击后连续三次回车,生成公钥和私钥,对应文件保存在C:\Users\你的用户名\.ssh
# 直接点击三次:提交代码时候不用密码
ssh-keygen -t rsa
  • 私钥保存在电脑本地
  • 公钥给服务器如github,gitlab等
3. 绑定GitHub
  • 代码仓库如GitHub,bitbucket, 公司自己的仓库,都可以作为GIT的远程仓库地址
  • 将提供的公钥提供给github进行,进行赋权,通过ssh访问
  • ssh访问: git@gitee.com:daydreamer9451/pii-management-backend.git
    在这里插入图片描述

二、基本指令

# 一:建立仓库
# 1.1  新建包并设置隐藏文件可见,包中打开git命令窗口,出现. git目录
git init
# 1.2  创建一个叫demo的包,并在包中建 .git.目录
git init demo
# 1.3  远程从服务器(公司,github)拉取仓库,后面是github的仓库地址
git clone https://github.com/bootscata/picturerepository



# 二: add :将工作区的添加到暂存区
# 将几个文件纳入跟踪中,添加文件要带后缀名
git add first.txt
# 添加以sql结尾的文件
git add *.sql
# 添加所有当前工作区域的文件
git add .
# 添加修改过的文件(updated,u为小写)
git add -u



# 三:commit :将暂存区文件添加到版本库的当前分支
# 3.1 所有文件要commit,必须先add;
# 将当前add到索引库的文件全部提交到版本库
git commit -m "提交评论"

# 3.2 commit的时候如果评论长,且评论换行,则不能直接按照上述方法,不然提交完后评论会小时
# 1. git commit,出现弹窗编辑评论;     2. 复制评论
# 3. shift+insert将评论粘贴进去;     4. esc退出编辑,shift+z+保存退出;
git commit



# 四:文件几种状态及查看
# 4.0 查看当前工作区域文件状态
git status
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git restore <file>..." to discard changes in working directory)
#        modified:   123.sql
#  no changes added to commit (use "git add" and/or "git commit -a")

# 简单日志(short)
git status -s
#  M 123.sql

# 4.1 新增文件未add
untracked files
# 4.2 新增文件已add未commit
new file
# 4.3 新增文件已commit,再次修改,未add
modified(红色字体)
# 4.4 新增文件已commit,再次修改,已add  
modified(绿色字体)
# 4.5 删除文件未add
deleted(红色字体)
# 4.6 删除文件add未commit
deleted(绿色字体)
# 4.7 提交工作区所有新文件,修改,删除文件后
nothing to commit, working tree clean



# 五:日志信息
# 显示当前提交的记录信息,从最近到最远,按Q退出
git log
# 提交的信息: commitID, 作者,邮箱,日期,评论
# commit 744ce2ca763da2b184c0a080505b6d87f2b12240 (HEAD -> master)
# Author: 舒展 <1037289945@qq.com>
# Date:   Thu Feb 13 21:56:16 2020 +0800
#    this is the first time to commmit
# 日志一行显示: 提交的简单信息: 从HEAD到master, 提交id,评论
git log --pretty=oneline
# d5f8b9e2207874fda49da3180e8fba0258baaa7a (HEAD -> master) 删除
# b0b17130b77c3493a29566d1eb577c9e5be0c20c 批处理

# 查看上次提交的日志(-10代表倒数第十次提交的日志)
git log -1


# 六:版本回退及撤销修改

# 1. 工作区修改,未add: 放弃工作区修改/删除的文件(resotre只有新版本有)
# 1.1  1.sql修改未add,本地文件恢复和版本库的状态。
# 1.2  1.sql修改后add,再次修改,回退后:本地文件和暂存区的一样;
2.另外一种是readme.txt已经放入暂存区了,接着又作了修改,撤销修改就回到添加暂存区后的状态
直接在本地文件中把修改的撤销掉;
git restore 1.sql
git checkout 1.sql

#2. 工作区修改并add加commmit的文件回退到 已add未commit的状态的版本
git reset --soft head^   #倒数第一次的提交 
git reset --soft head^   #倒数两次的提交的提交(几个^就回退几个提交)
git reset --soft head~10 #要回退的过多的话,倒数10次全部回退

#3. 工作区修改add并commit后,将commit状态回退到文件修改之前(本地修改的也会消失)
git reset --hard head^
#3.1 hard回退后,本地修改的也会删除,如果想恢复
git reflog
# af6897c (HEAD -> master) HEAD@{0}: reset: moving to head^(现在的提交版本)
# bdbaf2c HEAD@{1}: commit: second  (回退的提交版本及id)
# af6897c (HEAD -> master) HEAD@{2}: commit (initial): first (第一次的提交版本)

# 将本地工作区和版本库回退到制定提交id的那个版本
git reset --hard bdbaf2c


#七: 查看修改
# 7.1 本地文件修改后,未add查看文件的修改了什么
git diff;
git diff 4.txt;

5. 将代码推送/下载到github
# 1.将本地仓库与远程的GIT_TEST仓库绑定: origin:本地版本库 
git remote add origin https://github.com/bootscata/GIT_TEST
# 2. 远程库是空的,第一次推送master,加–u参数,Git会把本地的master分支内容推送远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令
# 推送origin:本地,  master:分支
git push -u origin master
# 3. 以后每次提交
git push origin master



# 2. 远程仓库文件发生变化: 拉取使得本地和远程同步
# 将远程仓库同本地仓库比较,
git pull



5. 工作区/暂存区/版本库

工作区: 电脑里能看到的项目目录
暂存区/索引: stage/index。存放在 “.git目录” 的index文件
版本库: 工作区有一个隐藏目录.git,即Git的版本库。

四. git分支

git仓库在init的时候,默认创建一个master分支,可以创建多个分支,如
master: 用于项目发布时候的版本,较稳定;
bugfix: 用于紧急修复生产bug的分支;
develop: 用于日常开发时候的分支;

1. 分支创建及删除
本地仓库分支的操作

# 1. 创建一个名字为develop的分支
git branch develop
# 2. 查看当前分支   , *--绿色名: 当前所在分支
git branch
# 3. 查看远程仓库的分支
git branch -r
# 4. 删除一个分支 (test分支被删除,删除时不能处在test分支)
git branch -d test
# 5. 分支更换名字(将test分支更名为alpha)
git branch -m test alpha
# 6. 切换分支(切换到develop分支)
git checkout develop
# 7.创建并切换到develop分支
git checkout -b develop
# 8 下载指定分支的文件
git clone -b branchname git地址
2. 分支的合并
# 假如当前在master分支,就会将develop的合并到master
git merge develop

假设当前有master,bugfix,develop三个分支;
在develop开发完后调试后,先合并到bugfix让测试人员验收,验收成功后再合并到master分支进行最终发版;

  1. 创建一个git本地仓库,默认master分支,必须先创建一个文件并提交后,才能创建其他分支,不然就会报错;
# 要先commit之后才会真正建立master分支,此时才可以建立其它分支。
# 在master分支创建一个redeme.txt并提交,  
#  从master主分支创建的其他分支,都会带这个readme.txt
fatal: Not a valid object name: 'master'.
  1. 在develop分支下,本地工作区添加1.txt并commit到版本库;
  2. 切换到bugfix,发现本地工作区1.txt消失了,于是将develop的merge到bugfix,发现1.txt出现了;
  3. 切换到master分支,再将develop的mege过来,发现master的也有1.txt了;
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值