Hello friend, I'm Ritchie|

Ritchie里其

园龄:2年6个月粉丝:4关注:7

Git

1.简介

Git是目前世界上最先进的分布式版本控制(Revision control)系统(没有之一)。

1.本地版本控制

2.集中版本控制 SVN

3.分布式版本控制 Git

  • 每个人都拥有全部的代码!

2. Git安装和卸载

使用镜像地址,速度快一些

CNPM Binaries Mirror (npmmirror.com)

软件版本:
rc是候选版
ga是正式版

NPM的全称是Node Package Manager,是一个NodeJS包管理和分发工具,已经成为了非官方的发布Node模块(包)的标准。2020年3月17日,Github宣布收购npm,GitHub现在已经保证npm将永远免费。

3. 常用Linux命令

pwd 打印当前目录

git config -l 查看git配置清单

rm 删除文件

rm -r 删除目录

cd .. 返回上一级

ls和ll 列出当前目录下的所有文件

clear 清屏

exit 退出

git config --system --list查看系统级别的配置文件

git config --global --list查看当前用户配置

4.用户配置(必须)

系统配置git安装目录etc下的gitconfig文件。

用户配置c盘user用户目录下.gitconfig目录

git config --global user.name "wangzeyu"
git config --global user.email "wangzeyu@email.com"

5. 基本理论✨

Workapce工作区

Index/Stage暂存区

Repository本地仓库

Remote远程仓库 --> GitHub

![[image-20221108081152691.png]]

6. 项目搭建

生成公钥ssh,实现免密登录

$ ssh-keygen -t rsa
在系统c盘用户目录下生成一个私钥和一个公钥文件,打开id_rsa.pub公钥,拷贝到gitee

  1. 在Gitee上新建仓库
  2. 然后克隆下载git clone gitee项目的url地址
  3. 再把克隆下来的文件复制到新建的idea项目中,或者直接使用该目录作为项目
  4. add到暂存区(在idea左下角的Terminal使用命令git add .)
  5. commit到本地仓库(git commit -m "提交新文件")
  6. push到远程仓库(git push)
  7. 此时刷新Gitee就显示出来了

7.Git分支(branch)

新建分支的方法:

  1. 在Gitee代码位置可以新建分支,默认主分支是master。

  2. idea右下角Git:master也可以新建分支,+New Branch

![[image-20221108200251297.png]]

![[image-20221108200209201.png]]

切换分支

选中要切换到的分支,然后点Checkout

![[image-20221108200718287.png]]

注:如果是在Gitee中新建的分支,需要在idea项目中右键Git->Repository->Fetch刷新出来。

回退分支

git reset

尽量别用

合并分支merge

需要先切换到master主分支,然后Git->Repository->Merge

上面的是本地的,下面的是服务器上的分支

![[image-20221108204034267.png]]

自定义合并分支

eg.把A,B分支合并到C分支?

先Checkout选择到C分支,然后在分别把A,B两个分支Merge合并进来。最后push。

其他说明

一台电脑上可以配置多个SHH Key
https://gitee.com/help/articles/4229#article-header1
不同网站(例如Github和Gitee)进行SSH通信要填不同的邮箱来生成密钥对。

检查现有 SSH 密钥

  1. 打开Git Bash。
  2. 输入 ls -al ~/.ssh 以查看是否存在现有的 SSH 密钥。

生成新 SSH 密钥

  1. 打开Git Bash。
  2. 粘贴下面的文本(替换为您的 GitHub 电子邮件地址)。
    $ ssh-keygen -t ed25519 -C "your_email@example.com"

当系统提示您“Enter a file in which to save the key(输入要保存密钥的文件)”时,可以按 Enter 键接受默认文件位置。 请注意,如果以前创建了 SSH 密钥,则 ssh-keygen 可能会要求重写另一个密钥,在这种情况下,我们建议创建自定义命名的 SSH 密钥。 为此,请键入新的密钥保存位置,并将 自定义的密钥名称 eg.id_rsa2 加在后面。注意这个id_rsa2是文件名,不是目录名。

> Enter a file in which to save the key (/c/Users/YOU/.ssh/id_rsa2):[Press enter]
  1. 在提示符下,键入安全密码。注意它这里密码是不显示的,连*星号都没有。
  2. 在GitHub头像 -> Settings -> SSH and GPG keys -> New SSH key -> 把生成的公钥粘进去
  3. 添加后测试一下ssh -T git@github.com

为Gitee和GitHub设置不同的key

  1. 打开Git Bash,cd ~/.ssh进入.ssh目录,如果.ssh文件夹不存在,利用mkdir ~/.ssh指令自动创建
  2. ssh-keygen -t ed25519 -C 'wangzeyu@tom.com' -f ~/.ssh/github_ed25519然后回车三次,为GitHub生成公钥
  3. ssh-keygen -t ed25519 -C 'wangzeyu@tom.com' -f ~/.ssh/gitee_ed25519也是回车三次,为Gitee生成公钥
  4. 上面两个邮箱可以不同,我为了方便记忆写成一样的。
  5. 分别测试一下,ssh -T git@github.comssh -T git@gitee.com
  6. 如果报错:git@github.com: Permission denied (publickey).,就要添加主机到本机SSH可信列表,即将 SSH 私钥添加到 ssh-agent。
  7. 输入ssh-agent -s,然后ssh-add ~/.ssh/github_ed25519,我这里的id是github
  8. 如果还报错:Could not open a connection to your authentication agent,就执行如下命令:ssh-agent bash
  9. 然后再执行ssh-add ~/.ssh/github_ed25519
  10. 最后测试一下,显示Hi username!就success了。
  11. 更好的办法是在.ssh目录下新建一个config文件,注意该文件无后缀!
# gitee
Host gitee.com
HostName gitee.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitee_ed25519
# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_ed25519

git bash清屏
方法一:快捷键 Ctrl+L
该方法只是把滚动条置于最下方,还是可以滚动屏幕看到原来操作过的命令和记录。

方法二:输入reset命令加回车键
该方法能实现真正的清屏,所有打印记录,所有操作过的命令可以通过上下箭头迅速查看。

方法三:输入clear回车键

GitHub

  1. 先在本地文件夹,右键Git Bash输入git init初始化一个本地仓库
  2. 另外git status可以查看当前仓库的文件状态,clear可以清屏
  3. 然后把要管理的文件添加到暂存区git add 文件名,将当前目录下的所有文件到暂存区:git add .
  4. 再把暂存区的文件提交到Git仓库中git commit -m 提交的说明
  5. 先在GitHub上新建一个仓库
  6. 复制给出的远程仓库地址
  7. 给远程仓库起个别名,一般叫它origin,命令是git remote add origin 远程仓库地址
  8. 在Git中`git push xxx复制的地址 master(要推送的分支名称,这里写master)``
  9. 改分支名称git branch -M main
  10. 添加-u可以帮你记住本次提交的远程仓库地址和分支名称git push -u origin main,下次提交只用git push就行

Windows平台下使用git add文件时出现”warning: LF will be replaced by CRLF“提示

**什么是CRLF和LF **

  • CRLF 是 carriage return line feed 的缩写;中文意思是 回车换行。
  • LF 是 line feed 的缩写,中文意思是换行。
  • CR为回车符,LF为换行符。Windows结束一行用CRLF,Mac和Linux用LF。
    git config --global core.autocrlf false
    false表示取消自动转换功能。适合纯Windows。
    true表示提交代码时把CRLF转换成LF,签出时LF转换成CRLF。适合多平台协作。
    input表示提交时把CRLF转换成LF,检出时不转换。适合纯Linux或Mac。

*更好的办法,比较麻烦:参考文章:

  1. 如果设置core.autocrlf = false``,那么很可能会出现CRLF和LF混合的情况,这样会导致一些问题,例如``git diff 失去功能,会发现很多行代码并没有修改,然而被认为是修改过了。
  2. 首先core.autocrlf = true在windows上才是正确的选择,那么如何避免warning呢?还要有以下几个步骤:
  • 添加.gitattributes
  • 设置core.safecrlf = true
  • 使用dos2unix、notepad++等工具来将LF转换成CRLF

本文作者:Ritchie里其

本文链接:https://www.cnblogs.com/wang-zeyu/p/16923889.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Ritchie里其  阅读(30)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
✨欢迎你~🍻
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 遥か Aimer
遥か - Aimer
00:00 / 00:00
An audio error has occurred.

作词 : aimerrhythm/田中ユウスケ

作曲 : 田中ユウスケ

编曲 : 玉井健二/百田留衣

海岸線の雨に ちらばった君の影

思い出が交差する 海辺の街

君はあの日のまま いまも夢を見てた

君はあの日のまま いまも夢を見てた

遥か記憶の空 2人照らす光

遥か記憶の空 2人照らす光

膝までの浅瀬で 見つけた星

君まで届くなんてさ ありえないような

浅い眠りの中で 深い夢から覚めて

浅い眠りの中で 深い夢から覚めて

裸足のまま駆けてく まばゆい星

君はあの日のまま どんな夢を見てた?

君はあの日のまま どんな夢を見てた?

遥か記憶の空 2人照らす光

遥か記憶の空 2人照らす光

いつまでもこうして 笑っててほしい

夜空に舞い上がる 幾千の花びら

でたらめな誓いで 生きてく日々

君から届くなんてさ ありえないような