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 资源作为工作目录。

  • 在克隆的资源上添加或修改文件。

  • 如果其他人修改了,你可以更新资源。

  • 在提交前查看修改。

  • 提交修改。

  • 在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。

image-20240427165519961

Git常用命令大全

img

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'> 可以不进入vim
      • git commit -m -a 参数设置修改文件后不需要执行 git add 命令,直接来提交
        image-20240427181536107
* 提交之后会进入`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提交日期

        image-20240427213322046

    image-20240427202800156

分支

几乎每一种版本控制系统都以某种形式支持分支,一个分支代表一条独立的开发线。

使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。

image-20240427210859012

一个经典的git流模型

image-20240427221002667

操作分支

* 查看当前分支

  1. git log (查看提交历史,你可以根据HEAD指向判断当前分支)
    git log --all 查看所有分支
    git log --all --graph 查看所有分支

  2. git status (查看状态,可以看所处分支,以及暂存区和已修改的文件)

  3. git branch --list (*后面就是所处分支)

* 创建分支

  1. git branch develop1 #创建分支develop1

  2. 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' 再次提交即可

* 删除分支! ! !

  • git branch -d # 删除确定不要的分支(未合并的分支使用-D)

远程仓库/remote

此上都是对本地仓库的操作,现在让史山代码走出亚洲走向世界,上传到代码托管平台

  • 省略一下建立Github空仓库的过程,将空仓库的URL复制

  • git remote add + origin+ URL 添加远程仓库

  • git push+origin+master把本地的master分支推送到远程的origin远程仓库里

    • 开始输 Github的用户名密码(现在已经禁止这种登录方式了)
    • 去Github生成token复制一下(搭图床有写)
    • 再次push,输密码时粘贴token,敲击回车
    • push成功
  • 为了简便登录操作,生成一个公钥和私钥,之后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

      image-20240427201235764
    • 开始实践

      • 本地找一个空文件夹
      • 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 拉取远程仓库的分支 (只是拉取到本地版本库)
  • 变成本地分支
      1. git checkout develop1 #建立了develop1的跟踪分支,简化写法
      1. git checkout -b develop1 origin/develop1 #1.的完整版
      1. git checkout --track origin/develop1 #新建跟踪分支
      1. git pull + origin+develop1 # 拉取分支

git的贮藏功能

当你在一个分支上进行修改时,另一个分支也突然需要你修改

你的工作目录现在是脏的(有很多修改的东西),没提交肯定不能使用git checkout

一般不推荐写一半直接提交,然后checkout到另一个分支

  • git stash==git stash push 保存此次修改不提交

  • git checkout master,修改完成提交,再切换回之前脏的分支

  • git stash apply 恢复你之前的修改内容

git stash可以储存多次,可以通过git stash list查看储存的多次内容

image-20240428123423430

  • 想象成栈,后进先出。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分支上面
image-20240428131541877
  • 提交到远程仓库后,最好不要使用变基,因为会有人使用你的分支进行开发

  • rebase -i(不要使用!!!)操作不当会 lost all !!! 不建议尝试,不做赘述

image-20240428134910757

gitignore

  1. touch .gitignore
  2. 编辑.gitignore,添加不想提交的文件
  3. 不想提交的文件就只会在你的本地(切换分支再切换回来会消失的)

Vscode 使用 Git可视化管理源代码

检查是否成功安装Git环境

  • windows搜索栏输入Power Shell,右键以管理员身份运行
  • 输入git
  • 敲击回车

重新打开Vscode (已安装ssh拓展)

  • 打开任意一个工程文件夹

  • 打开Git控制栏源代码管理
    Ctrl+shift+G

初始化储存库

  • 提交
  • 推送
  • 选择要推送的仓库(第一次会提示你添加远程存储库,按照操作添加即可)
  • 填写仓库名(登录成功输入新仓库名会自己创建)
  • 发布分支main

打开Vscode远程连接

  • 打开远程储存库

  • 直接在Github上编辑修改

  • 源代码管理模块选择分支上传同步提交并推送

  • 关闭远程连接

  • 本地仓库无之前远程连接的修改

  • 修改之前需要先在源代码管理源代码管理存储库点击同步更改

打开Vscode源代码管理

  • 源代码管理选择更改暂存更改
  • 选择分支
  • 提交和推送(修改)
posted @   sanjiudemiao  阅读(66)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示