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 branchdevelop1 #创建分支develop1
git checkout -bdevelop2 #创建分支develop2并移动到该分支下
* 切换分支
git checkoutdevelop1 切换到分支develop1下
* 合并分支 ! ! !
git checkoutmaster #先切换到master分支下git mergedevelop1 #合并分支develop1到master分支下git mergedevelop2 #合并分支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 checkoutdevelop1 #建立了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 checkoutmaster,修改完成提交,再切换回之前脏的分支 -
git stash apply恢复你之前的修改内容
git stash可以储存多次,可以通过git stash list查看储存的多次内容

- 想象成栈,后进先出。0就是最新的一次stash
git stash applystash@{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源代码管理
- 源代码管理选择
更改的暂存更改 - 选择分支
- 提交和推送(修改)

浙公网安备 33010602011771号