首页 > 其他分享 >Git使用笔记

Git使用笔记

时间:2024-05-30 14:33:21浏览次数:24  
标签:git -- config 笔记 Git ssh 使用 com 分支

全局Git配置

  1. 查看用户名和邮箱
git config user.name 
git config user.email
  1. 修改用户名和邮箱
git config --global user.name "username" 
git config --global user.email "email"
  1. 生成SSH公钥
ssh-keygen -trsa -C"邮箱"
  1. 重置git本地密码
git config --system--unsetcredential.helper

新建代码库

# 在当前目录新建一个Git代码库     
git init     
# 新建一个目录,将其初始化为Git代码库 git init [project-name]     
# 下载一个项目和它的整个代码历史     
git clone [url]    

分支管理

  1. 查看远程分支
使用如下命令查看所有远程分支: git fetch git branch -r
  1. 拉取远程分支并创建本地分支
# - 方法一
# 使用如下命令: 
git checkout -b 本地分支branch_x origin/远程分支名name 
# 使用该方式会在本地新建分支branch_x,并自动切换到该本地分支branch_x。
    
# - 方式二
# 使用如下命令: 
git fetch origin 远程分支名name:本地分支branch_x 
# 使用该方式会在本地新建分支branch_x,但是不会自动切换到该本地分支branch_x,需要手动checkout。

stash

git stash
git pull
git stash pop

分支文件对比

  1. 显示出branch1和branch2中差异的部分
git diff branch1 branch2 --stat
  1. 显示指定文件的详细差异
git diff branch1 branch2 具体文件路径
  1. 显示出所有有差异的文件的详细差异
git diff branch1 branch2
  1. 查看branch1分支有,而branch2中没有的log
git log branch1 ^branch2
  1. 查看branch2中比branch1中多提交了哪些内容
git log branch1..branch2

注意,列出来的是两个点后边(此处即dev)多提交的内容。

  1. 不知道谁提交的多谁提交的少,单纯想知道有什么不一样
git log branch1...branch2
  1. 在上述情况下,在显示出每个提交是在哪个分支上
git log -lefg-right branch1...branch2

注意 commit 后面的箭头,根据我们在 –left-right branch1…branch2 的顺序,左箭头 < 表示是 branch1 的,右箭头 > 表示是branch2的。

文件撤销操作

  1. 未使用 git add 缓存代码时

可以使用 git checkout -- filepathname (比如: git checkout -- readme.md ,不要忘记中间的 “--” ,不写就成了检出分支了!!)。放弃所有的文件修改可以使用 git checkout . 命令。此命令用来放弃掉所有还没有加入到缓存区(就是 git add 命令)的修改:内容修改与整个文件删除。但是此命令不会删除掉刚新建的文件。因为刚新建的文件还没已有加入到 git 的管理系统中。所以对于git是未知的。自己手动删除就好了。

  1. 已经使用了 git add 缓存了代码

可以使用 git reset HEAD filepathname (比如: git reset HEAD readme.md)来放弃指定文件的缓存,放弃所以的缓存可以使用 git reset HEAD . 命令。

此命令用来清除 git 对于文件修改的缓存。相当于撤销 git add 命令所在的工作。在使用本命令后,本地的修改并不会消失,而是回到了如(一)所示的状态。继续用(一)中的操作,就可以放弃本地的修改。

  1. 已经用 git commit 提交了代码

可以使用 git reset --hard HEAD^ 来回退到上一次commit的状态。此命令可以用来回退到任意版本:git reset --hard commitid

git log 可以查看请交历史记录

cherry-pick

使用场景:对于多分支的代码库,将代码从一个分支转移到另一个分支是常见需求。
这时分两种情况。一种情况是,你需要另一个分支的所有代码变动,那么就采用合并(git merge)。另一种情况是,你只需要部分代码变动(某几个提交),这时可以采用 Cherry pick。

Git提交规范

https://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html

Git同机器配置多个Git账户,做到公私分离

  1. 生成账户1的公钥:
ssh-keygen -trsa -C"[email protected]" 
# 生成过程中记得给ssh公钥文件起个名字,如:id_rsa1
  1. 将ssh key添加到SSH agent中,
ssh-add ~/.ssh/id_rsa1
  1. 生成账户2的公钥:
ssh-keygen -trsa -C"[email protected]" 
# 生成过程中记得给ssh公钥文件起个名字,如:id_rsa2
  1. 将ssh key添加到SSH agent中,
ssh-add ~/.ssh/id_rsa2
  1. 配置ssh
vim ~/.ssh/config 
# 配置如下内容: 
# 粘贴到config文件中 
#公司的git地址 
Host git.***.com 
User git 
Hostname git.***.com  #公司的git地址 
IdentityFile ~/.ssh/id_rsa1  #访问公司git的SSH KEY 
Port   ***  #公司的git端口 
Host gitee.com 
User git 
Hostname gitee.com #github的地址 
IdentityFile ~/.ssh/id_rsa2  #访问github的SSH KEY

问题记录:

  1. 执行****git命令时提示秘钥权限太开放Permissions 0644 for '/Users/liuml/.ssh/id_rsa_tz' are too open.** **错误信息如下:

Update failed
Warning: Permanently added 'gitee.com,..*.' (ECDSA) to the list of known hosts.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/home/lisi/.ssh/id_rsa_tz' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/home/lisi/.ssh/id_rsa_tz": bad permissions
[email protected]: Permission denied (publickey).
Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

解决方式
可以执行以下命令将秘钥文件的权限设置为700。

chmod -R 700 ~/.ssh/config ~/.ssh/id_rsa_*
  1. git****客户端 提示Load key "/home/xxx/.ssh/id_rsa.pub": invalid format

解决方式

vim ~/.ssh.config  
Host x.x.x.x 
User git 
IdentityFile /home/xxx/.ssh/id_rsa1 # 此处没有.pub 
IdentitiesOnly yes

Git常用命令笔记

转载地: https://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html

镜像配置

替换设置

可以直接在配置文件中动态替换 Github 的地址,这样不用每次克隆的时候都修改地址

git config --global url."https://kgithub.com/".insteadOf "https://github.com/"

测试

git clone https://github.com/kubernetes/kubernetes.git
取消设置
git config --global --unset url.https://github.com/.insteadof
查看 Git 配置信息
git config --global --list

no matching host key type found. Their offer: ssh-rsa 问题解决

修改ssh配置文件 ~/.ssh/config, 增加配置项,一劳永逸

HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa

上面配置默认对所有连接的服务器生效,也可以通过制定服务器使部分服务器生效

Host 172.16.x.x
HostName k8s-node001
User root
Port 22
HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa

标签:git,--,config,笔记,Git,ssh,使用,com,分支
From: https://www.cnblogs.com/bainianblog/p/18222262

相关文章

  • GitHub 作为主流源代码管理工具的特点及其在 AR 精灵项目中的运用
    GitHub是一个基于Web的版本控制和协作平台,建立在Git版本控制系统之上。Git由Linux操作系统的创建者LinusTorvalds开发,是一个分布式版本控制系统,广泛应用于软件开发项目中。GitHub提供了丰富的功能,帮助开发人员轻松管理和跟踪代码更改,与他人共享工作,并在项目上协作。本......
  • 关于github的全方位使用和与个人小组项目结合
    一,引言今天给大家介绍的是一款源代码管理工具网站Github,Github是一个基于版本控制软件Git打造的网站对于个人而言,Github提供了丰富的代码托管和版本控制功能,方便开发者管理自己的项目和代码,个人也可以在网站上搜索自己所需要的开源项目或者代码片段,同时也可以在网站上向朋友或......
  • 如何从 GitHub 项目中获取特定提交
    我需要从GitHub下载FacebookAPI。通常,我只需点击"下载"选项卡下载最新的源代码。在这种情况下,我需要较早的提交:91f256424531030a454548693c3a6ca49ca3f35a,但我不知道如何从该提交中获取整个项目...谁能告诉我如何做到这一点?(顺便说一下,我用的是Mac,不知道这是否有什么......
  • Java Microservices 和 Spring Cloud:介绍微服务架构,并使用Spring Cloud来说明其在Java
    介绍微服务架构是一种软件开发技术,它将一个大型的单体应用系统拆分为多个小的、独立的服务,每个服务都可以独立部署和运行,各个小服务之间通过网络连接进行通信(通常是用HTTP/REST或消息队列)。每一个微服务都围绕着一个特定的业务功能进行构建,它们独立运行,在自己的进程内进行数......
  • github介绍
    GitHub是一个广泛使用的源代码管理工具和协作平台,特别适用于团队项目的开发和管理。以下是关于GitHub的详细介绍,结合团队项目的各个方面进行说明:1.基本概念GitHub是基于Git的源代码管理平台,提供了版本控制和协作功能,帮助开发团队有效管理代码库。主要功能包括代码托管、......
  • .NET|--WPF|--如何使用LINQPad创建一个WPF示例
    1.安装包管理器#搜索框内需要填入↓"id=Microsoft.NETCore.App""id=Microsoft.WindowsDesktop.App.Ref"2.代码voidMain(){ varapp=newSystem.Windows.Application(); varmainWindow=newSystem.Windows.Window { Title="SimpleWPFProgra......
  • TabControl和TabItem的样式自定义:为什么要使用自定义模板?
    在WPF(WindowsPresentationFoundation)中,控件的外观和行为是通过控件模板(ControlTemplate)来定义的。TabControl和TabItem控件也不例外,它们的默认控件模板定义了这些控件的结构和视觉状态。在实际应用中,开发者可能会发现直接设置TabItem的某些属性(例如Background)时不会生效。这篇......
  • 数据结构学习笔记-冒泡排序
    冒泡排序的算法设计与分析问题描述:设计并分析冒泡排序算法【算法设计思想】遍历数组,从第一个元素到倒数第二个元素(因为最后一个元素不需要再比较,它已经是最大的了)。在每次遍历过程中,再次遍历未排序部分的元素(从第一个到当前未排序部分的末尾),比较相邻的两个元素,如果顺序不正确......
  • Windows平台下使用C++计算文件MD5的方法
    #include<iostream>#include<windows.h>#include<tchar.h>#include<string>#include<cassert>#include<functional>typedefstd::basic_string<TCHAR>StringT;typedefstd::stringStringA;#define_PP_CAT_IMPL_......
  • 主流源代码管理软件Github介绍
    简介GitHub是一个基于Git的分布式版本控制和源代码管理平台,为开发者提供了丰富的协作工具。自2008年发布以来,GitHub已经成为开源项目和商业项目的首选平台。它不仅仅是一个存放代码的地方,更是开发者协同工作的中心。主要功能版本控制GitHub依赖Git提供强大的版本......