Git 的基本使用(在Git Bash中操作)
1. 配置全局信息(每个电脑只需要配置一次)
在提交的记录上,可以查看到配置的用户名和邮箱地址
git config --global user.name "用户名" // 配置用户名的 git config --global user.email "邮箱地址" // 配置邮箱地址
查看已经配置好的信息
-
在
c:\users\用户名\.gitconfig
中 -
git config --list --global // 查看全局所有的配置信息
-
git config user.name
-
git config user.email
2. 初始化Git仓库(每个项目只需要初始化一次)
-
将本地文件夹(项目文件夹,可以是空文件夹也可以是写过代码的文件)进行初始化
# 进入到本地文件夹(项目文件夹) 输入以下命令 git init
-
从远程服务器上下载已经存在的 Git 仓库
3. 查看当前文件状态(可做可不做,不影响后续的Git使用)
# 常用命令 git status # 精简模式 git status -s git status --short
文件的4中状态
-
未跟踪(Untracked) - 新建了一个文件的状态正在上传…重新上传取消
-
已暂存(Staged)- 将新建文件或者已修改文件添加到暂存区正在上传…重新上传取消
-
未修改(Unmodified)- 将暂存区的文件提交到Git仓库
-
已修改(Modified)- 将已经存到Git仓库的代码进行了修改
4. 将文件添加到暂存区(常用操作1)
# 将单独的文件添加到暂存区 git add 文件名 # 将所有已修改或新建文件添加到暂存区 - 常用 git add .
5. 将暂存区的代码提交到Git仓库(常用操作2)
git commit -m "本次提交的信息,一般都写完成的内容"
6. 将工作区的修改后的代码回退到上一次提交Git仓库的版本
git checkout -- 文件名
7. 将暂存区的文件移除掉
git reset HEAD 文件名
8. 跳过暂存区直接将修改的文件提交到Git仓库
git commit -a -m "本次提交的信息,一般都写完成的内容"
9. 移除Git仓库和工作区的文件
移除了文件之后,不管是哪种移除方式,移除的记录都会在暂存区保留,我们需要将暂存区移除记录提交到Git仓库中,然后再进行后续的操作
# 第一种,同时移除git仓库和工作区的文件 git rm -f 文件名 # 第二种,将文件从Git仓库中移除,保留工作区的文件(同时有红绿两种状态,提交暂存移除记录再修改好css文件后提交到暂存区,再提交到Git仓库) git rm --cached 文件名
10. 查看提交版本记录(一般情况下是配合回退使用)
# 查看全部版本提交记录,如果记录很多就可能展示不全,按下回车就可以继续往后看,知道出现 End表示全部记录展示完毕,此时按下q键就可以退出查看模式,就可以继续输入命令 # 第一个常用 git log # 如果想查看最近提交的n(具体的数字)条记录 git log -2 # 展示n(具体的数字)条记录并将每条结果展示在一行上 git log -2 --pretty=oneline # 按照自定义格式查看提交记录 %h表示记录id,%an表示作者,%ar表示提交时间,%s表示提交备注 git log -2 --pretty=format:"%h|%an|%ar|%s"
11. 回退到指定版本(恢复代码到某一阶段)
先查看提交历史,为了获取每一次提交的id
# 提交的id可以是前几位字符(一般5位以上),在回退之前一定要把所有的提交记录做备份,因为回退之后就无法看到回退这个版本之后的记录了,如果要返回的话仍然需要id git reset --hard 提交的id # 查看之前操作步骤,可以查看回退之前的当前id git reflog
今天学的常用内容
# 1. 初始化仓库,每个项目只要用到了 Git 就需要执行一次 git init # 2. 将工作区写好的代码提交到暂存区 git add . # 3. 将暂存区的文件提交到Git仓库 git commit -m "备注" # 每完成一部分任务,循环执行2、3步骤 # 如果遇到意外情况,比如说客户要求不要新代码了,要之前的代码,使用回退命令 # 1. 查看每一次提交的版本记录,查看备注和提交id git log # 2. 回退到指定版本 git reset --hard 提交id
Git第二天 - 网络操作和分支
关联命令分析
1. 网上空仓库和本地仓库使用HTTPS地址关联(本地已有仓库,生成网络仓库)
使用仓库HTTPS地址,在每次提交时都会验证gitee
邮箱和密码
-
创建网上空的仓库
-
选择HTTPS地址
-
在本地创建空的项目文件夹
-
git init
初始化git仓库 -
创建任意一个文件,建议还是创建
README.md
-
git add .
和git commit -m "消息"
将文件添加到git仓库 -
复制远程的两行命令,将本地仓库推送到网上仓库
git remote add origin 你自己的仓库的HTTPS地址 git push -u origin "master"
2. 网上空仓库和本地仓库使用SSH地址关联(本地已有仓库,生成网络仓库)
因为使用HTTPS总是需要验证邮箱和密码,使用SSH就不需要每次都做验证
1. 生成并配置公钥
-
打开
命令行
输入ssh-keygen -t ed25519 -C "你的Gitee邮箱地址"
,然后连续敲击回车3次 -
进入
C:\用户(Users)\用户名\.ssh\
文件夹,如果看到id_ed25519
和id_ed25519.pub
就代表生成公钥成功 -
进入
Gitee
点击右上角头像 -> 设置 -> 左侧的安全设置里面的SSH公钥 -
在标题输入
能让你分辨出是哪台电脑的标题就可以,可以是电脑型号,也可以是‘家里的电脑’或者‘单位的电脑’这样的文字
-
打开
id_ed25519.pub
文件,复制里面的全部内容,粘贴到公钥
的输入框中 -
点击确定
注意:以上步骤,一个电脑只需要做一次
2. 网上空仓库和本地仓库使用SSH地址关联(本地已有仓库,生成网络仓库)
-
创建网上空的仓库
-
选择HTTPS地址
-
在本地创建空的项目文件夹
-
git init
初始化git仓库 -
创建任意一个文件,建议还是创建
README.md
-
git add .
和git commit -m "消息"
将文件添加到git仓库 -
复制远程的两行命令,将本地仓库推送到网上仓库
git remote add origin 你自己的仓库的SSH地址 git push -u origin "master"
###
3. 根据网上仓库生成本地仓库(常用,第一:刚开始做项目时,什么都没有。第二:初到公司,同事已经完成了一部分代码,我们直接clone下载就好)
-
创建网上仓库,在创建时需要勾选设置模板(核心目的为了生成一个文件,任意文件都行)
-
点击网上仓库的
克隆\下载
按钮 -
选中
ssh
标签,并复制ssh地址
-
在本地打开项目文件夹存放的路径
-
在文件夹上按右键打开git命令行
-
在命令行中输入一下命令
git clone 你刚复制的ssh地址
4. 将本地写好的代码推送到网上
只要将本地文件保存到Git仓库后,直接使用git push
就可以提交到网上
-
使用
git add .
将文件添加到暂存区 -
使用
git commit -m "消息"
把文件提交到git仓库 -
使用
git push
将代码推送到网上 -
跟上午的区别:
# 先有的本地仓库,所以没有设置远程仓库地址关联,该命令一个项目只需要输入一次(现有本地再有远程才需要,clone的项目不需要) git remote add origin 你自己的仓库的SSH地址 # 将本地代码推送到网上同时设置默认的推送分支,上午方式也只需要输入一次-u后面的内容,以后直接git push, clone的项目不需要-u后面的内容,只用git push就好 git push -u origin "master"
如果远程仓库代码比本地的要新,输入
git pull
命令来拉去最新远程代码
5. 分支
主分支是用来保存完整功能代码的,功能分支才是用来开发的,所以我们需要新建分支,在新建的功能分支上做开发
注意,在功能分支上开发代码仍然需要将代码提交到Git仓库!
5.1 查看分支
git branch # 注意,展示的分支列表前面有 * 表示该分支位当前所在分支
5.2 创建分支
git branch 分支名称(英文)
5.3 切换分支
git checkout 分支名称
5.4 创建的同时并切换分支
git checkout -b 分支名称
5.5 合并分支
在功能分支上开发完功能并提交到git仓库后,通过测试确定无误,需要将功能分支的代码合并到主分支
# 1. 切换到主分支 git checkout master # 2. 合并分支 git merge 分支名称
5.6 删除分支
当完成一个功能并把功能分支的代码合并到主分支后,功能分支就没有用了,就可以删除了
git branch -d 分支名称
5.7 合并冲突
当对同一个文件进行了不同的修改(改了同一行代码)就会发生冲突
在代码上用vscode
查看时会出现4个文字按钮
-
accept current changes - 保留<<<<<<<<和=======之间的代码
-
accept incoming changes - 保留========和>>>>>>>之间的代码
-
accept both changes - 两者都保留(常用)
-
Compare changes - 对比两个代码的不同
-
手动的把代码进行合并
注意:解决冲突后一定要把解决好的代码提交到Git仓库中
5.8 将本地分支推送到远程仓库中
-u 后面的内容设置默认推送,如果需要连续推送该分支代码那么只需要在第一次写-u及后面的内容,后续直接使用git push就可以了,如果需要更改推送别的分支,需要再次使用-u及后面的内容更改默认推送分支
git push -u origin(远程仓库名字,git remote add 来设置的) 本地分支的名称
5.9 查看远程分支列表
git remote show 远程仓库名(origin)
6.0 跟踪分支(单独下载一个分支的代码)
# 1. 下载远程仓库最新代码 git pull # 2. 本地没有,也不需要改名 git checkout 远程分支名 # 3. 本地有了,或者需要改名 git checkout -b 本地分支名称 远程仓库名/远程分支名
6.1 如果远程仓库比本地仓库的代码要新,需要更新本地代码(在工作中常见)
git pull
6.2 删除远程分支
git push 远程仓库名(origin) --delete 远程分支名