当前位置: 首页 >  开发指南 >  Git操作笔记

Git操作笔记

导读:Git操作笔记.基础应用.简单使用.创建仓库.# 1. 在git/gitee上创建远程仓库.# 2. 在本地创建仓库并连接远程仓库.mkdir snippets.cd snippets.git init.touch README.md.git add README.md.git

Git操作笔记

基础应用

简单使用

创建仓库

# 1. 在git/gitee上创建远程仓库

# 2. 在本地创建仓库并连接远程仓库
mkdir snippets
cd snippets
git init 
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin https://gitee.com/Young_jam/snippets.git
git push -u origin "master"

# 2.5 或者连接本地已有仓库
cd existing_git_repo
git remote add origin https://gitee.com/Young_jam/snippets.git
git push -u origin "master"

常用命令

  1. git init 初始化新仓库

  2. git add [file/.] 添加[新文件/所有文件]到暂存

  3. git commit -m "xxx" 提交修改到本地版本库并附加提交信息

    1. git commit -F file 使用文件内容作为提交信息

    2. git commit --reuse-message <commit-id> 使用之前某次(由 commit-id 确定)提交的 message 作为本次提交的 message

         * `-C <commit>` 作用同上
      
    3. git commit --reedit-message=<commmit> 作用同上,但是调用编辑器允许修改提交信息

         * `-c <commit>` 作用同上
      
  4. git commit --amend 修改上次的提交信息

  5. git push 同步到远程仓库,默认推送本地分支到有跟踪关系(通常是同名)的远程分支

    1. git push [-f] origin a:b 将本地 a 分支的内容推送到远程 b 分支,如果 b 分支有不同的提交历史,需要使用 -f 选项强制覆盖
  6. git pull 同步远程仓库到本地

  7. git clone httpS://git.xxxx 复制远程仓库到本地

  8. git status 查看仓库信息

  9. git log [-N] 查看仓库提交日志

    • git log [-p] filename 查看单个文件的修改记录,-p 选项查看具体的修改内容

配置git

# 设置全局用户
git config --global user.name "xxxx"
git config --global user.email "xxxx@xxx"
# 设置git编辑器为vim
git config --global core.editor vim
# 设置git支持x显示中文路径
git config --global core.quotepath false
  1. 配置git push时免密码

    1. 本地主机创建ssh秘钥

          ssh-keygen -t rsa -C "[email protected]"
      
    2. 打开gitee的个人设置,在安全设置–ssh 公钥中添加id_rsa.pub中的内容

    3. 如果配置远程仓库时使用的https地址,则需要修改为ssh

          git remote -v  # 查看远程仓库地址,如果是https开头,则需要改为ssh
      

      git remote set-url origin [email protected]:yangjam_tm/coding.git

常用操作

  • git强制远程覆盖本地

    # 1. 拉取远程更新
    

    git fetch –all

    2. 撤销本地修改

    git reset –hard origin/master

    3. 同步远程仓库

    git pull origin master

  • 删除未跟踪的文件

    # 查看未跟踪文件
    

    git clean -n

    删除文件

    git clean -f

  • 取消跟踪文件

    git rm --cached readme1.txt    # 删除readme1.txt的跟踪,并保留在本地。
    

    git rm –f readme1.txt # 删除readme1.txt的跟踪,并且删除本地文件

  • 本地 git 回退到指定版本

    # git log 查看特定版本的commit sha码
    

    git reset –hard [961ca2d2f45a28b962e293a10b11a8f7ab4e4777]

  • 撤销提交

    git reset --soft HEAD~1
    

    撤销最后一次commit,但是不撤销add操作

    git reset –mixed HEAD~1

    撤销最后一次commit及add操作,与git reset HEAD~1作用相同

  • 修改已经 push 到远程的 commit 信息

    # 本地同步到远程已经提交的版本
    

    git commit –amend -m “” # git commit –amend -F log.txt

    此时本地相当于回退到上一个版本然后重新进行了一次提交,如果直接push会存在冲突

    使用force将强制覆盖远程的那一次提交,需要确定那一次提交没有任何依赖

    git push –force

实用场景

  1. 我在本地主分支上修改了代码,但是不想提交到主分支,而是提交到一个新的远程分支

    # 1. 先创建一个新的本地分支
    

    git checkout -b new_branch

    2. 查看一下当前本地分支

    git branch

    master * new_branch # 表明新分支已经创建,且切换到了该分支上

    3. 在该分支上提交代码

    4. 将该分支推到远程

    git push origin new_branch:remote_new_branch

  2. 我要拉取远程的子分支到本地,然后将修改合并到主分支,然后删除子分支

    # 0. 查看所有分支
    

    git branch -a

    1. 拉取远程子分支到本地

    git fetch origin remote_new_branch:temp # 拉取remote_new_branch到本地并命名为temp

    2. 比较分支差异

    git diff temp

    3. 合并分支

    git merge temp # 如果存在冲突,需要处理冲突

    4. 删除本地分支和远程子分支

    git branch -D temp git push origin –delete remote_new_branch

  3. 将本地分支的内容推送到远程的两个不同分支

    # 1. 查看本地所处分支和所有远程分支
    

    git branch -a

    2. 修改当前分支内容

    3. 提交当前分支到远程对应分支

    git psush

    4. 切换到另一分支

    git checkout b

    5. 合并a分支的内容到b分支

    git merge a

    6. 将a分支提交到远程对应分支

    git push

  4. 将分支的某次修改同步到主干/另一分支

    git log  # 查看修改的commit-id
    

    git checkout xxxx # 切换到需要同步修改的分支 git cherry-pick commit-id # 将修改合并到该分支

    如果存在冲突,需要解决冲突再commit

    git push

内容
  • Gitlab Registries
    Gitlab Registrie
    2023-12-09
    在项目开发和部署过程中,我们常常需要一套私有仓库,比如 Code Repository、Package Reposito
  • 详解数据结构中栈的定义和操作
    详解数据结构中栈的定义和操作
    2023-12-08
    摘要: 本文为大家详解数据结构中栈的定义和操作。.本文分享自华为云社区《数据结构:详细讲解栈的定义、栈的操作》,作者:
  • 读程序员的制胜技笔记14_安全审查(下)
    读程序员的制胜技笔记14_安全审
    2023-12-07
    1. 拒绝服务.1.1. denial of service,DoS.1.1.1. 一系列让你没法正常提供网络服务的攻击
  • 开发环境篇之HALCON数据结构
    开发环境篇之HALCON数据结构
    2023-12-05
    开发环境篇之HALCON基础.目录.基本数据分类.图标类数据.Image(图片).Pixel:像素.Channel:通道
  • 图形学笔记 - 数学相关
    图形学笔记 - 数学相关
    2023-12-02
    Math in CG.1.Vector.(1)vector.函数api:.GLSL:.vec2、vec3、vec4.HL
  • Git 和 GitHub 超入门指南(一)
    Git 和 GitHub 超入门
    2023-12-01
    这个系列旨在指导没有使用过git和代码托管仓库github的人群。以下是一些关于git的基本指南:.1. Git 和 G
  • 创新电子元件设计与**
    创新电子元件设计与**
    2023-12-16
    创新电子元件设计与**.在当今科技飞速发展的时代,电子元件作为电子产品的基础组成部分,其设计与**的创新举足轻重。随着人
  • ***迁移与升级解决方案
    ***迁移与升级解决方案
    2024-01-05
    ***迁移与升级解决方案.随着业务的不断扩大和发展,很多企业逐渐意识到原有的***已经不能满足日益增长的需求,因此需要进
  • 电子元件质量检测与认证服务
    电子元件质量检测与认证服务
    2024-01-05
    电子元件质量检测与认证服务.为什么需要电子元件质量检测与认证服务?.随着电子产业的不断发展,电子元件在各个生产领域都起着
  • 私有云搭建与**服务
    私有云搭建与**服务
    2023-12-11
    私有云搭建与**服务.在当今信息化快速发展的社会环境下,随着企业对数据安全和隐私保护的需求不断增加,越来越多的企业开始将
  • 电子元件**链**解决方案
    电子元件**链**解决方案
    2023-12-11
    电子元件**链**解决方案.在当今全球化的市场中,**链**是企业成功的关键因素之一。特别是在电子元件行业,**链**尤
  • 云存储解决方案
    云存储解决方案
    2024-01-10
    云存储解决方案.随着互联网技术的不断发展,越来越多的企业开始意识到数据存储和管理的重要性。传统的本地存储方式已经不能满足
  • 移动应用程序开发
    移动应用程序开发
    2024-01-20
    移动应用程序开发.移动应用程序开发是指开发适用于**和平板电脑的应用程序。随着移动设备的普及和移动互联网的快速发展,移动
  • 互联网金融服务平台
    互联网金融服务平台
    2023-12-31
    互联网金融服务平台.互联网金融服务平台是指利用互联网技术提供金融服务的平台,它的出现极大地改变了传统金融行业的运营模式,
  • ***数据备份与恢复解决方案
    ***数据备份与恢复解决方案
    2024-01-20
    ***数据备份与恢复解决方案.在当今数字化时代,数据备份和恢复变得越来越重要。对于企业来说,***数据的备份和恢复解决方
  • 高性能电子元件**
    高性能电子元件**
    2024-01-10
    高性能电子元件**.随着科技的不断进步,电子行业的发展日新月异。高性能电子元件作为电子产品的关键组成部分,对于产品的性能