GIT

放弃使用Merge,开心拥抱Rebase!

1. 引言

大家好,我是比特桃。Git 作为现在最流行的版本管理工具,想必大家在开发过程中都会使用。由于 Git 中很多操作默认是采用 Merge 进行的,并且相对也不容易出错,所以很多人都会使用 Merge 来进行合并代码。但Rebase 作为 Git 中主要命令之一,我们还是有必要了解一下,在适合的场景中进行使用。
在这里插入图片描述

Git忽略规则(.gitignore配置)不生效原因和解决

第一种方法:
.gitignore中已经标明忽略的文件目录下的文件,git push的时候还会出现在push的目录中,或者用git status查看状态,想要忽略的文件还是显示被追踪状态。
原因是因为在git忽略目录中,新建的文件在git中会有缓存,如果某些文件已经被纳入了版本管理中,就算是在.gitignore中已经声明了忽略路径也是不起作用的,
这时候我们就应该先把本地缓存删除,然后再进行git的提交,这样就不会出现忽略的文件了。…

    

git 不提交权限改变的 Git识别文件权限修改

刚打开IDE,工作区的代码状态全部变成修改未提交的状态了?这是这么回事?
这是因为Git忽略文件权限或者拥有者改变导致的git状态变化。
默认Git会记录文件的权限信息,如果文件的权限信息被修改,在Git中改变文件会出现很多我们并不需要提交的文件。

方法一:

git config core.filemode false

git config --global core.filemode false           //全局设置

 

方法二: 
直接修改代码仓库
.git 目录里的 config 文件的 filemode (在 [core] 段中)字段,将其改为 false

如何配置 SSH 管理多个 Git 仓库和以及多个 Github 账号

1. Why SSH ?

在使用 github 时或者免密登录到远程服务器时,总要使用到 SSH 这个工具来创建密钥并进行连接,那什么是 SSH 呢,我们先来看一下它的简单定义:

SSH是一种加密协议,全称为Secure Shell,用于安全地远程登录到服务器或其他远程设备上执行命令或传输文件。它提供了一种安全的加密通信机制,使得远程登录和文件传输等操作不会被恶意攻击者窃取或篡改,确保了数据的保密性和完整性。SSH采用公钥密码学技术,能够有效地防止被中间人攻击或网络窃听。

举例来说,如果我们要使用 Github 这种 git 代码托管平台的话,首先本地要生成一个 SSH 私钥(如id_rsa)公钥(如id_rsa.pub),然后将 公钥 填写到 Github 的 SSH Key 管理面板中。当我们向 Github 推送代码的时候会首先发起身份校验。此时,本地会将用户信息通过 SSH 私钥 执行『签名』操作。当签名信息发送到 Github 的时候,Github 就会使用用户保存在平台上的 公钥 来校验签名信息,使用

    

如何在 GitHub 上创建拉取请求pull request

介绍

Git 是一种开源分布式版本控制系统,它使协作软件项目更易于管理。许多项目在 Git 存储库中维护他们的文件,而像 GitHub 这样的平台使代码共享和贡献变得可访问、有价值和有效。

托管在公共存储库中的开源项目受益于更广泛的开发人员社区通过拉取请求所做的贡献,请求项目接受您对其代码存储库所做的更改。

本教程将指导您通过命令行向 Git 存储库发出拉取请求,以便您可以为开源软件项目做出贡献。

先决条件

您应该在本地计算机上安装 Git。您可以检查您的计算机上是否安装了 Git,并按照本指南完成操作系统的安装过程。

您还需要拥有或创建一个 GitHub 帐户。您可以通过 GitHub 网站github.com这样做,并且可以登录或创建您的帐户。

自 2020 年 11 月起,GitHub 删除了基于密码的身份验证。因此,您需要创建个人访问令牌或添加SSH 公钥信息,以便通过命令行访问 GitHub 存储库。

最后,您应该确定要参与的开源软件项目。

    

GIT常用命令解析

术语

  • 工作区 /work tree
    仓库所在的文件夹叫做工作区,就是你在电脑里能看到的目录。
  • 暂存区
    也就是在 git add 之后,git commit 之前的缓冲区,一般在.git/index 文件中。
  • 仓库
    git commit 之后,根据暂存区的文件生成一个 commit id, 暂存区的文件归档到仓库中,一般在.git/objects 里面

git

# 输出git版本信息
$ git -v
git version 2.38.1.windows.1

# 输出常用的命令列表

git-flow[实战系列]

安装

windows 安装git之后貌似自带git flow

初始化

composer init,git init 一样,git flow 也需要初始化,初始化之后会有两个分支 master,develop

//可以重命名各分支
$ git flow init
Initialized empty Git repository in /Users/tobi/acme-website/.git/
//生产分支,如果有用到gogs,gitlab等工具,合并master代码需要审核的情况下,master要用别的名字,例如gitflowmaster

Git 一些知识笔记

Git Ignore

# 此为注释 – 将被 Git 忽略
*.a         # 忽略所有 .a 结尾的文件
!lib.a      # 但 lib.a 除外
/TODO       # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
build/      # 忽略 build/ 目录下的所有文件
doc/*.txt   # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

移除文件

要从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除(确切地说,是从暂存区域移除),然后提交。可以用 git …