Git笔记
1、环境的部署
1、git官网下载
2、npmmirror 中国镜像站大重构升级(原淘宝)
https://registry.npmmirror.com/binary.html?path=git-for-windows/
3、安装
默认一直下一步,编辑器可以选择自己常用的
4、Git大全
https://gitee.com/all-about-git
5、Git可视化教程
https://learngitbranching.js.org/?locale=zh_CN
2、基础的Linux命令学习
cd #进入目录
cd .. #返回上一级目录
pwd #显示当前所在目录路径
ls #显示当前目录文件
touch #新建一个文件 例:touch index.js
rm #删除一个文件 例:rm index.js
mkdir #新建一个目录
rm -f #删除一个文件夹
mv #移动文件 移动到BB文件夹例:mv index.js BB index.js
reset #清屏
clear #清屏 清除当前页的显示,实质上是把终端显示向后翻了一页
history #查看历史命令
help #帮助
exit #退出
3、基础配置
查看配置
git config -l
查看系统配置
git config --system --list
查看本地配置
git config --global --list
设置用户名和邮箱
git config --global user.name "xo"
git config --global user.email xurongdadi@163.com
项目配置初始化
cd /e/vuepress
#初始化.git目录
git init
#也可以使用我们指定docs目录作为Git仓库
git init docs
4、Git 基本操作
it 的工作就是创建和保存你项目的快照及与之后的快照进行对比。
本章将对有关创建与提交你的项目快照的命令作介绍。
Git 常用的是以下 6 个命令:git clone、git push、git add 、git commit、git checkout、git pull,后面我们会详细介绍。

说明:
- workspace:工作区
- staging area:暂存区/缓存区
- local repository:版本库或本地仓库
- remote repository:远程仓库
一个简单的操作步骤:
$ git init
$ git add .
$ git commit
git init - 初始化仓库。
git add . - 添加文件到暂存区。
git commit - 将暂存区内容添加到仓库中。
创建仓库命令
下表列出了 git 创建仓库的命令:
| 命令 | 说明 |
|---|---|
git init | 初始化仓库 |
git clone | 拷贝一份远程仓库,也就是下载一个项目。 |
提交与修改
Git 的工作就是创建和保存你的项目的快照及与之后的快照进行对比。
下表列出了有关创建与提交你的项目的快照的命令:
| 命令 | 说明 |
|---|---|
git add | 添加文件到暂存区 |
git status | 查看仓库当前的状态,显示有变更的文件。 |
git diff | 比较文件的不同,即暂存区和工作区的差异。 |
git commit | 提交暂存区到本地仓库。 |
git reset | 回退版本。 |
git rm | 将文件从暂存区和工作区中删除。 |
git mv | 移动或重命名工作区文件。 |
提交日志
| 命令 | 说明 |
|---|---|
git log | 查看历史提交记录 |
git blame <file> | 以列表形式查看指定文件的历史修改记录 |
远程操作
| 命令 | 说明 |
|---|---|
git remote | 远程仓库操作 |
git fetch | 从远程获取代码库 |
git pull | 下载远程代码并合并 |
git push | 上传远程代码并合并 |
5、创建仓库
查看当前仓库信息
git status
将文件加入暂存区
git add README.md
#将所有文件加入缓存区
git add .
提交这次变更提交了一次commit
git commit -m "我的第一次提交"
提交之前后悔了,取消加入暂存区文件
git reset git/index.md
查看版本记录
#查看当前记录
git log
#恢复版本记录
git reset 3563f366d6af93 --hard
#--hard:不保存所有变更
#--soft:保留更改且变更内容处于Staged
#--mixed:保留变更且变更内容处于Modified
#不带参数默认--mixed
#1、soft: 重置git commit
#2、mixed: 重置git commit 和 git add
#3、hard: 重置git commit 和 git add 和工作副本的修改。
#查看所有
git reflog
#回到最新变更简单方法
git pull
6、新分支
创建新分支xo-b
git checkout -b xo-b
查看所有分支
git branch
切换分支
git checkout master
#或
git checkout xo-b
合并分支merge并入master
git checkout master
git merge xo-b
7、远程仓库
远程gitee码云
git remote add origin https://gitee.com/wosm/vuepress.git
#上传远程代码并合并
git push -u origin "master"
#下载远程代码并合并
git pull origin master
8、常用git 命令
六个常用命令
push
pull
commit
add
checkout
fetch/clone
查看文件状态
#查看指定文件状态
git status [文件名]
#查看所有文件状态
git status
#添加所有文件到暂存区
git add .
#提交暂存区中的内容到本地仓库 -m 提交信息
git commit -m "消息内容"
9、忽略文件
在主目录下建立“.gitignore”文件
#注释
*.txt #忽略所有》txt后缀的文件
!lib.txt #但lib.txt除外
/temp #仅忽略项目根此目录下文件,不包括其他目录temp
build/ #忽略build/目录下的所有文件
doc/*.txt #会忽略doc/目录下txt文件,不包括doc/xx/下txt文件
10、ssh免密登录
确认本地 SSH 密钥是否存在
# 查看本地 SSH 密钥文件(id_rsa 是私钥,id_rsa.pub 是公钥)
ls -l /c/Users/当前用户名/.ssh/
如果没有这两个文件:先执行以下命令生成密钥(一路回车,无需设置密码,设置密码会增加后续操作复杂度):
生成公钥
#进入c:\users\administrator\.ssh目录
ssh-keygen -t rsa -C "你的邮箱(比如roy@xxx.com,随便填,仅作标识)"
#一路回车,在.ssh文件夹下
id_rsa.pub #公钥
id_rsa #私钥
公钥是 id_rsa.pub 文件里的内容,需要复制它并添加到 Git 服务器(GitLab/Gitea/GitHub 等)
11、常用分支命令
#列出所有本地分支
git branch
#列出所有远程分支
git branch -r
#新建一个分支,但依然停留在当前分支
git branch [branch-name]
#新建一个分支,并切换到该分支
git checkout -b [branch]
#合并指定分支到当前分支
git merge [branch]
#删除分支
git branch -d [branch-name]
#删除远程分支
git push Or1g1n -delete [branch-name]
git branch -dr [remote/branch]
12、git fetch用法
git fetch更新本地仓库的两种用法:
# 方法一
$ git fetch origin master #从远程的origin仓库的master分支下载代码到本地的origin maste
$ git log -p master.. origin/master #比较本地的仓库和远程参考的区别
$ git merge origin/master #把远程下载下来的代码合并到本地仓库,远程的和本地的合并
# 方法二
$ git fetch origin master:temp #从远程的origin仓库的master分支下载到本地并新建一个分支temp
$ git diff temp #比较master分支和temp分支的不同
$ git merge temp #合并temp分支到master分支
$ git branch -d temp #删除temp
git fetch更安全也更符合实际要求,因为可以在merge前,我们可以查看更新情况,根据实际情况再决定是否合并。
13、新设备部署
git clone
git clone 网址 生成文件名
账号密码登录
新配置
git config --global user.name "xo"
git config --global user.email xurongdadi@163.com
14、更改origin地址
先查看当前的远程地址
git remote -v
修改 origin 的地址:
# 示例:把 origin 改成新的 http 地址
git remote set-url origin http://10.1.6.8:3000/CZ_IT/ComputerCenter.git
# 如果是 SSH 地址(比如 git@xxx.com:xxx/xxx.git),同理:
git remote set-url origin git@10.1.6.8:3000/CZ_IT/ComputerCenter.git
也可以先删除旧 origin,再添加新 origin
#删除旧 origin
git remote remove origin
#添加新的 origin 地址
git remote add origin ssh://git@10.1.6.8:3000/it/ComputerCenter.git
注意事项
- 地址格式要正确
- HTTP/HTTPS 地址:
http://xxx.xxx.xxx/xxx/xxx.git - SSH 地址:
git@xxx.xxx.xxx:xxx/xxx.git(注意是冒号:,不是斜杠/) - 修改地址后,第一次推送建议加
-u关联分支(比如git push -u origin master),避免分支关联错误; git push -u origin master
- HTTP/HTTPS 地址:
15、新用户使用
新建配置
#初始化仓库
git init
#添加远程仓库的URL,其中<remote-name>是自定义名称,<remote-url>是远程仓库的URL:
git remote add <remote-name> <remote-url>
#检查是否成功添加远程地址
git remote -v
#同步下载
git pull
#如果默认主分支不是master是main同步下载
git pull <remote-url> main
#设置默认分支,origin<remote-name>是自定义名称
git branch --set-upstream-to=origin/main master
#又可以同步下载了
git pull
#配置自己信息
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
#提交新分支xxx
git push -u dada xxx
从远程库克隆
git clone <remote-url>
#如果想指定不同的目录名,可以将目录名作为可选参数添加到命令中
git clone <remote-url> <directory-name>
文件在远程仓库存在,但本地执行了 git rm或手动删除,如何重新拉取
拉取远程最新代码
# 获取所有远程分支更新
git fetch --all
# 从远程分支恢复文件(替换main为目标分支)file 是文件路径
git checkout origin/main -- [file]
git checkout dada/master -- [file]
#git checkout用于切换分支、恢复文件或进入分离头指针状态的核心命令
git checkout main
git pull
本地分支与远程分支不同步
本地分支落后于远程分支,导致 git pull无法获取最新文件。
# 更新所有远程分支信息
git fetch --all
# 重置本地分支到远程分支状态(慎用,会丢弃本地未提交修改)
git reset --hard origin/main
#此操作会覆盖本地所有未提交的更改,确保已备份重要数据
#验证文件恢复
git pull
误删文件且未提交,需恢复到最新提交状态
#--后可指定文件路径(如 file.txt),仅恢复该文件。
#.表示恢复所有文件。
git checkout HEAD -- .