Git入门教程
Git常用操作
Git入门自用
git官方文档:https://git-scm.com/book/zh/v2
github官方文档:https://docs.github.com/zh/get-started/quickstart
GUI工具:Vscode Idea
Git入门教程:30分钟弄懂,实际不止30分钟
[Git基本操作]:技术蛋的简单入门教程
[菜鸟教程]:最好用的教程
建议配合Git入门教程配合使用
如有漏洞还请指出
Git
- Git是一个代码/文件托管+保管+提交修改+评论修改的工具。
- 分布式管理工具 - - - >方便多人协同合作- - - >精准找人背锅
- Github,Gitee,Gitlab- - - >Git的托管平台
一般工作流程如下:
-
克隆 Git 资源作为工作目录。
-
在克隆的资源上添加或修改文件。
-
如果其他人修改了,你可以更新资源。
-
在提交前查看修改。
-
提交修改。
-
在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。

Git常用命令大全

Git 工作区、暂存区和版本库
- 工作区:就是你在电脑里能看到的目录。
- 暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
- 版本库:工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。
建立本地git仓库
-
git init
初始化一个本地仓库(默认生成了一个master分支,现在不必深究) -
初始化一个仓库后,所有文件都是未跟踪的
-
git add
去跟踪文件或者目录 (一旦跟踪就会一直跟踪) -
git rm
删除文件或者目录(注意是删除) -
git rm --cache
停止跟踪并保留
-
-
开始修改已跟踪的文件
-
git add<file-name>
暂存为缓存状态 -
git reset HEAD
取消暂存状态
-
-
开始提交此次修改
git commit
提交git commit -m
< 'commit message'> 可以不进入vimgit commit -m
-a 参数设置修改文件后不需要执行 git add 命令,直接来提交
* 提交之后会进入`vim编辑器`,随便填一下提交信息,`wq`退出
* 至此就算完成了一次版本提交
-
修改完发现之前版本有bug
-
git reset head~ --soft
撤销前一次提交(不能撤销第一次提交) -
git status
查看暂存区和已修改的文件-
红色表示已修改的文件,还未暂存
-
git add
暂存一下,git status
查看发现暂存的文件变成绿色了 -
git commit -m 'fix half'
再次提交变成新的版本 -
git status
再次查看,文件变成白色,显示当前分支-
git diff
查看文件变更内容 -
git log
查看提交历史 (git log --pretty=oneline
美化一下) -
commit
出现的乱码就是本次提交的哈希唯一值 -
Author
提交作者(直接逮捕bug创造者)Date
提交日期
-
-
-
分支
几乎每一种版本控制系统都以某种形式支持分支,一个分支代表一条独立的开发线。
使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。

一个经典的git流模型

操作分支
* 查看当前分支
git log
(查看提交历史,你可以根据HEAD指向判断当前分支)
git log
--all 查看所有分支
git log
--all --graph 查看所有分支
git status
(查看状态,可以看所处分支,以及暂存区和已修改的文件)
git branch --list
(*后面就是所处分支)
* 创建分支
git branch
develop1 #创建分支develop1
git checkout -b
develop2 #创建分支develop2并移动到该分支下
* 切换分支
git checkout
develop1 切换到分支develop1下
* 合并分支 ! ! !
git checkout
master #先切换到master分支下git merge
develop1 #合并分支develop1到master分支下git merge
develop2 #合并分支develop2到master分支下- 如果develop1和2修改了相同的地方
合并冲突
,"Merge conflict in the xxx" # 需要用户手动修改冲突
**git status
#先查看出现冲突文件
** 修改完成后git commit -am
'fix all' 再次提交即可
- 如果develop1和2修改了相同的地方
* 删除分支! ! !
git branch -d
# 删除确定不要的分支(未合并的分支使用-D)
远程仓库/remote
此上都是对本地仓库的操作,现在让史山代码走出亚洲走向世界,上传到代码托管平台
-
省略一下建立Github空仓库的过程,将空仓库的URL复制
-
git remote add
+origin
+ URL
添加远程仓库 -
git push
+origin
+master
把本地的master分支推送到远程的origin远程仓库里- 开始输 Github的
用户名
和密码
(现在已经禁止这种登录方式了) - 去Github生成token复制一下(搭图床有写)
- 再次push,输密码时粘贴token,敲击回车
- push成功
- 开始输 Github的
-
为了简便登录操作,生成一个公钥和私钥,之后
pull
就可以用ssh传输-
cd ~/.ssh
-
ssh-keygen -t rsa -b 4096 -C "sanjiudiao@163.com"
-t rsa
选择rsa算法生成密钥-b 4096
选择大小-C "评论备注"
-
起密钥名字
-
输入密码
-
ls
可以看到上生成了密钥名字``密钥名字.pub
-
复制公钥内容-->Github的
Seting
界面-->选择SSH and GPG keys
-
开始实践
- 本地找一个空文件夹
- Github找一个喜欢的项目
git clone
+URL
-
git 推送与拉取
**Failed to connect to github.com port 443 after 21121 ms: Couldn't connect to server
(不要挂vpn去push,会导致本机系统端口号和git的端口号不一致)--[详情]
* 推送
git push
+origin
+master
把本地所在分支推送到远程的origin远程仓库里的master分支里git push
+origin
+develop1
把本地所在分支推送到远程的origin远程仓库里的develop1分支里
* 拉取
- 新建一个空白文件夹,鼠标右键git bash,
git init
初始化一下 git remote add
+origin
+ URL
添加远程仓库git fetch
拉取远程仓库的分支 (只是拉取到本地版本库)- 变成本地分支
-
git checkout
develop1 #建立了develop1的跟踪分支,简化写法
-
git checkout -b develop1 origin/develop1
#1.的完整版
-
git checkout --track origin/develop1
#新建跟踪分支
-
git pull
+origin
+develop1 # 拉取分支
-
git的贮藏功能
当你在一个分支上进行修改时,另一个分支也突然需要你修改
你的工作目录现在是脏的(有很多修改的东西),没提交肯定不能使用git checkout
一般不推荐写一半直接提交,然后checkout到另一个分支
-
git stash
==git stash push
保存此次修改不提交 -
git checkout
master,修改完成提交,再切换回之前脏的分支 -
git stash apply
恢复你之前的修改内容
git stash
可以储存多次,可以通过git stash list
查看储存的多次内容
- 想象成栈,后进先出。0就是最新的一次stash
git stash apply
stash@{1} ,返回到stash第一次保存的时候了git checkout --<file name>
也可以恢复到文件未修改时的时候,但是要慎用,因为是无法找回的git stash pop
返回最新的一次stash,副作用是返回之后会在list里把它删除掉git stash drop stash@{0}
删除最近的一次stash;(因为删除掉0,1会顺延变成0)
git的重置、变基
反悔指令
< git reset
>重置
git reset head~ --soft
撤销提交
*head~
head表示当前提交 head~表示上一次提交 head~2表示倒数第二次提交soft
表示只是撤销提交,git add
暂存还留着
git reset head~ --hard
撤销提交hard
表示不仅取消了当时的暂存git add
,而且将之前修改的那些内容也取消了- 相当于彻底回到了我们刚提交完的一个状态,不推荐使用(会丢数据)
<git rebase
>变基
相当于搬家,美化提交记录
git checkout B
切换到B分支,再git rebase A
,此时B分支的修改就会移动到A分支上面

-
提交到远程仓库后,最好不要使用变基,因为会有人使用你的分支进行开发
-
rebase -i
(不要使用!!!)操作不当会 lost all !!! 不建议尝试,不做赘述
gitignore
- touch .gitignore
- 编辑.gitignore,添加不想提交的文件
- 不想提交的文件就只会在你的本地(切换分支再切换回来会消失的)
Vscode 使用 Git可视化管理源代码
检查是否成功安装Git环境
- windows搜索栏输入Power Shell,右键以管理员身份运行
- 输入
git
- 敲击回车
重新打开Vscode (已安装ssh拓展)
-
打开任意一个工程文件夹
-
打开Git控制栏
源代码管理
Ctrl+shift+G
初始化储存库
- 提交
- 推送
- 选择要推送的仓库(第一次会提示你添加远程存储库,按照操作添加即可)
- 填写仓库名(登录成功输入新仓库名会自己创建)
- 发布分支main
打开Vscode远程连接
-
打开远程储存库
-
直接在Github上编辑修改
-
在
源代码管理模块
选择分支上传同步提交并推送
-
关闭远程连接
-
本地仓库无之前远程连接的修改
-
修改之前需要先在
源代码管理
的源代码管理存储库
点击同步更改
打开Vscode源代码管理
- 源代码管理选择
更改
的暂存更改
- 选择分支
- 提交和推送(修改)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)