• git学习笔记


    前言

    在开发项目中,尤其实在多人合作开发的项目中,代码管理和版本控制尤为重要。git就是一个非常好用流行的代码管理工具,记录下git的一些基础操作,方便日后复习查看。

    git安装

    • for linux
      sudo apt-get install git
    • for windows
      直接官网下载exe安装程序,解压安装就完事了。不过还需要打开git bash。配置一下:
    $ git config --global user.name "Your Name"
    $ git config --global user.email "email@example.com"
    
    • 1
    • 2
    • for mac
      推荐在app商城安装Xcode,然后先择菜单“Xcode”->“Preferences”,在弹出窗口中找到“Downloads”,选择“Command Line Tools”,点“Install”就可以完成安装了。

    git基础

    git init 初始化

    git add -A 将所有改动添加到仓库暂存区

    git commit -m “描述改动” 提交改动,并为改动添加注释

    git status 查看工作区状态

    git diff 查看修改内容

    git log 查看提交的历史记录 head指向的版本就是当前的版本

    git reset --hard commit_id 可以在不同历史版本之间穿梭 (HEAD 表示当前版本 HEAD^表示上一个版本 ,HEAD^^表示上上个版本)

    git reflog 查看历史命令,以便确定要回到未来哪个版本

    git checkout – “file” 在"file"文件在工作区的修改全部撤销,即回到上一次git commit或git add的状态

    git reset HEAD "file"把file在暂存区的修改回退至工作区

    git rm 用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容

    远程仓库相关

    git remote add origin git@server-name:path/repo-name.git 关联远程库。关联一个远程库时必须给远程库指定一个名字,origin是默认习惯命名

    git push -u origin master第一次推送master分支的所有内容;
    git push origin master 推送最新修改
    git push origin dev 向远程库推送dev分支

    git remote -v 查看远程库信息
    git remote rm 解除了本地和远程的绑定关系

    git clone 克隆一个远程仓库

    git checkout -b branch-name origin/branch-name 在本地创建和远程分支对应的分支,本地和远程分支的名称最好一致;

    git pull 抓取远程的新提交
    如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to origin/

    分支相关

    git checkout -b dev 创建并切换到dev分支 相当于两个命令:git branch dev + git checkout dev

    git branch 查看当前分支

    git merge 合并指定分支到当前分支。加上–no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并

    git branch -d dev 删除dev分支
    git branch -D 丢弃一个没有被合并过的分支

    git switch -c dev 创建并切换到新的dev分支

    git switch master 直接切换到已有的master分支

    git log --graph命令可以看到分支合并图

    当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。解决冲突就是把Git合并失败的文件手动编辑为我们希望的内容,再提交

    修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场;

    在master分支上修复的bug,想要合并到当前dev分支,可以用git cherry-pick 命令,把bug提交的修改“复制”到当前分支,避免重复劳动。

    标签管理相关

    注意:标签总是和某个commit挂钩。如果这个commit既出现在master分支,又出现在dev分支,那么在这两个分支上都可以看到这个标签。

    git tag 用于新建一个标签,默认为HEAD,也可以指定一个commit id;

    git tag -a -m "blablabla…"可以指定标签信息

    git show 可以看到说明文字

    git tag可以查看所有标签。

    git push origin 可以推送一个本地标签

    git push origin --tags可以推送全部未推送过的本地标签;

    git tag -d 可以删除一个本地标签;

    git push origin :refs/tags/可以删除一个远程标签

    其他关于git的操作

    git config --global color.ui true 让Git显示颜色,会让命令输出看起来更醒目

    忽略某些文件时,需要编写.gitignore;
    .gitignore文件本身要放到版本库里,并且可以对.gitignore做版本管理!

    汇总表格

    最后的最后,我的整理有些啰嗦,为大家附上我在网上找到的整理的十分简洁的关于git操作的表格,需要可以自取。
    在这里插入图片描述

    参考链接:
    廖老师的git教程

  • 相关阅读:
    实用工具系列 - Pycharm安装下载使用
    使用Git下载大语言模型
    0086 哈希表
    vue脚手架(vue-cli)详细安装过程
    当三代测序遇到肿瘤基因组研究
    kafka安装步骤以及初步入门
    Flume原理概述与配置文件编写说明
    【网络编程】IO多路复用
    第27天:安全开发-PHP应用&TP框架&路由访问&对象操作&内置过滤绕过&核心漏洞
    【UE5.1 角色练习】11-坐骑——Part1(控制大象移动)
  • 原文地址:https://blog.csdn.net/JeSuisDavid/article/details/125620499