当前位置: 首页 > news >正文

Git 学习笔记

一. git命令

参考文章:
1.常用 Git 命令清单
2.细读 Git | 弄懂 origin、HEAD、FETCH_HEAD 相关内容

在这里插入图片描述

设置用户名和邮箱
git config --global user.name “xxxx”
git config --global user.email “xxxx@qq.com”

查看用户名和邮箱
git config --global user.name
git config --global user.email

查看配置文件
git config --list

找到当前文件夹
cd /Users/*****/gitTest

本地文件与远程仓库连接

本地仓库初始化
git init

添加一个远程仓库,与origin master建立连接
git remote add origin 远程地址(如https://gitee.com/float-white/designDemo.git)
若存在origin 则删除 git remote rm origin
git push -u origin master

将远程分支dev_*** 拉到本地
git fetch origin dev_***

在本地创建分支dev_local并切换到该分支,与远端分支dev_*** 建立连接
git checkout -b dev_local origin/dev_***

创建分支
git branch dev_local

切换分支
git checkout dev_local

创建并切换到目标分支
git checkout -b <分支名>

查看本地分支,带*表示当前使用的分支
git branch

查看所有分支,其中远程分支会用红色表示出来
git branch -a

查看远程的分支名
git branch -r

查看远程地址
git remote -v

删除分支
git branch -d <本地分支>
git branch -D <本地分支> //当本地分支未提交时,可强行删除

git push origin :<远程分支>

将某个分支上的内容拉取到本地
git check master // 先切换到本地master, 再执行 git pull 也可以,不用添加origin 远程分支名
git pull origin dev_***
git pull <远程主机名> <远程分支名>:<本地分支名>

git pull 执行时,默认只拉取head本分支的代码,其他分支并没有拉取下来。

提交代码至暂存区
git add 文件d
· git add -A 提交所有变化
· git add -u 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)
· git add . 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件

从暂存区提交到本地仓库
git commit -m “添加dto”

将文件提交到远程dev,如果远程没有dev分支,则将新建一个dev分支
git push origin dev

显示暂存区和工作区的差异

git diff
git diff 文件名

退出
英文情况下按Q

合并分支:合并前要先切回要并入的分支
以下表示要把dev分支合并入master分支
git checkout master
git merge dev

查看暂存区文件
git ls-files

将文件移出暂存区
git rm --cached +文件名

查看当前分支有变更的文件
git status

显示所有远程仓库

$ git remote -v

显示某个远程仓库的信息

$ git remote show [remote]

增加一个新的远程仓库,并命名

$ git remote add [shortname] [url]

#更新远程分支列表(git branch -a时总是不出现新的分支,或者远程已经没有的分支在本地还有,这时就需要更新下本地的git分支保持和远程分支一致)
git remote update origin --prune

git stash
1.git stash list 查看stash了哪些存储
2.git stash 存储已经被git追踪过的文件,新建文件无法存储
3.git stash -u 存储包含新建的文件
4.git stash pop 还原存储文件
5.git stash save “save message” 可以自定义存储信息
6.git stash save -u “messeag”
7.git stash clear 删除所有缓存的stash

注意:可以对此git stash,然后用git stash list查看存储记录,每次提交都有对应的索引,
但是恢复文件git stash pop ,只能恢复距离最近的一次存储( 即stash@{0} ),
可以多次利用git stash pop 来恢复。
在这里插入图片描述

git reset https://www.jianshu.com/p/c2ec5f06cf1a
git reset - -hard HEAD^ 回滚最近一次commit (撤销一次合并请求),本地修改的内容,已经git add的内容,都会消失。(清空本地和暂存区,保持和git reset的内容一致)
git reset - -soft HEAD^ 回滚最近一次commit,保留本地修改的内容和git add的内容,并且把最近一次commit的内容放进暂存区,即下次可以直接git commit。
git reset - - mixed HEAD^ 回滚最近一次commit,保留本地工作目录,清空暂存区,已经git add的内容也存进本地工作目录,最后一次commit的文件也放进本地工作目录。

修改最后一次commit提交信息
git commit --amend -m “update message”

将本地分支 与远程分支做关联,以解决 “There is no tracking information for the current branch”,即“当前分支没有跟踪信息”
git branch --set-upstream-to=origin/远程分支的名字 本地分支的名字

HEAD^ 与HEAD~1

在这里插入图片描述

HEAD^ 等用于 HEAD~1,表示回滚一次commit
HEAD^^^^^ 等用于 HEAD~5,表示回滚五次commit

git log
1.git log 查看历史提交
2.git log -p 查看详细提交
3.git log - -stat 查看简要统计
4.git show 查看最近一次commit的提交内容
5.git show 查看任意一次提交内容

git diff
1.git diff 查看未提交的内容
2.git diff - -staged 比较暂存区和上一条commit。 或者git diff - -cached
3.git diff HEAD 比较工作目录和上一条commit

git reflog
查看本地提交记录
回滚到某个分支
git reset --hard 02a3260

三.知识点

1.当从master分支下,新建一个dev分支时,此时master分支下的文件也会同时被拷贝一份到新的dev分支下,也就是说,新建分支的内容和master分支内容一样,
而本地新建分支需要获取其他远程分支时,需要再次 git pull origin (远程分支名)并且页面上显示文件就是新的分支的。

2.git pull = git fetch + git merge
Fetch是从远程仓库拉取所有分支到 《远程仓库在本地的副本文件夹》,代码并没有更新下来(只是想看提交轨迹,但并不想合并代码,可能含有很多冲突),再通过git merge,合并到分支中。
Pull则是直接拉取并合并

在这里插入图片描述

4.git clone git@github.com:***-spring/test-project.git test-project-another(自定义工作区文件夹名)

5.git合并过程
1.若本地含有未commit内容,则先需要git stash, 用git stash list 查看
2.提交本分支所有代码至远端,git push origin dev (head->dev)
3.切换到test路径,git checkout test, 拉取最新代码 git pull origin test, (此时 head->test)
4.将dev分支合并到test: git merge dev
若此时遇到冲突,右键-Git-resolve conflicts, 选择以左边(test) 还是以右边(dev)为主,提交;
再执行 git merge --continue (将两个线上分支,在本地合并后,效果等同于git commit);
若需要上传到远端,则需要再执行git push或者取消合并 git merge --abort
5.将最新test分支代码,提交至远端,git push origin test

6.“HEAD” 的作用,git 是如何知道你当前在哪个分支上工作的呢?
1. HEAD是一个特别的指针,指向正在工作中的本地分支的指针,也就是说切换到哪个分支,它就会指向哪个分支。
2. git log 日志中展示 HEAD->master,指的是:当前是在master分支,当前指向的是master分支。

在这里插入图片描述
表示当前 master、test、origin/master、origin/test 处于同一commit位置,head表示当前指针指向 这次commit 位置

常见问题

1.error: src refspec master does not match any
error: failed to push some refs to ‘https://gitee.com/float-white/seckill.git’

相当于初始化项目,一次性提交所有文件
解决方法:
git add . 添加所有文件
git commit -m “init” 一次性提交到本地仓库
git push -u origin master

2.gitee快速搭建
1.gitee 先创建仓库
2.到本地目录gitee_local, git clone XX
3.git remote add origin 远程地址(如https://gitee.com/float-white/designDemo.git) 若存在origin 则删除 git remote rm origin
4.在项目中 添加文件
5.常规更新
git add . 添加所有变更文件
git commit -m “message” 一次性提交到本地仓库
git push -u origin master 提交到远程仓库

注意:如果本地仓库是通过 git clone 下来的,Git 会默认将远程仓库命名为 origin,自动关联上远端仓库(可在 .git/config 文件中看到已有 [remote “origin”] 配置项了),无需git remote add origin,Commit 之后就能直接 Push 了

3.如果清除所有git 提交日志?
删除idea 项目,隐藏文件 .git

4.origin 等同于 git项目的下载地址
$ git push origin main 等于 $ git push https://gitlab.pin-dao.cn/sz-base-team/ehr-platform.git main
其中 origin 指向了 git@github.com:toFrankie/repo-demo.git 远程仓库

origin 只是一个名称(别名),用于指向远程仓库,也可以用bar、foo等任意别名,只不过所有代码托管平台默认就是 origin

5.Idea 回滚代码在这里插入图片描述

http://www.xdnf.cn/news/1099729.html

相关文章:

  • OpenAI正准备推出一款搭载人工智能功能的网络浏览器,试图直接挑战Alphabet旗下
  • RISC-V:开源芯浪潮下的技术突围与职业新赛道 (二) RISC-V架构深度解剖(上)
  • 链表算法之【合并两个有序链表】
  • 【算法笔记 day three】滑动窗口(其他类型)
  • STM32第十九天 ESP8266-01S和电脑实现串口通信(2)
  • leetcode 3440. 重新安排会议得到最多空余时间 II 中等
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | DoubleVerticalSlider(双垂直滑块)
  • idea如何打开extract surround
  • (C++)任务管理系统(文件存储)(正式版)(迭代器)(list列表基础教程)(STL基础知识)
  • 自动化脚本配置网络IP、主机名、网段
  • Python正则表达式实战指南
  • k8s:安装 Helm 私有仓库ChartMuseum、helm-push插件并上传、安装Zookeeper
  • 快速分页wpf
  • 解锁localtime:使用技巧与避坑指南
  • 深度学习中的常见损失函数详解及PyTorch实现
  • 初学者对编译和链接的学习笔记(含预编译详解)
  • c++-内部类
  • 网络安全初级
  • python正则表达式(小白五分钟从入门到精通)
  • 技术学习_检索增强生成(RAG)
  • 客户频繁问询项目进度,如何提高响应效率
  • STM32中DMA(直接存储器访问)详解
  • 基于 SpringBoot + Vue 的 IT 技术交流和分享平台的设计与实现
  • Git保姆级入门实战:从安装配置到常用命令与常见错误解决
  • 机器学习 YOLOv5手绘电路图识别 手绘电路图自动转换为仿真软件(如LT Spice)可用的原理图,避免人工重绘
  • upload-labs靶场通关详解:第21关 数组绕过
  • H5微应用四端调试工具—网页版:深入解析与使用指南
  • Java 枚举详解:从基础到实战,掌握类型安全与优雅设计
  • 青岛门卫事件后:高温晕厥救援技术突破
  • Transformer:自注意力驱动的神经网络革命引擎