❤ Git 的安装和使用操作gitee仓库

❤ Git 的安装和使用

一、 Git 认识

Git官网

https://git-scm.com/

Git历史版本

https://registry.npmmirror.com/binary.html?path=git-for-windows/

(1) Git安装配置(windows)

初次安装git,直接一键安装
…略过

(2)配置用户名和邮箱

$ git config --global user.name “xxxx”

$ git config --global user.email “xxx@qq.com”

(3)代码库中SSH配置以及拉取远程项目进行开发

1.生成SSH Key

ssh-keygen -t xxx -C “你的邮箱@xx.com”

ssh-keygen –t rsa –C “你的邮箱@xx.com”【我用的这个】

回车选择默认即可

2.打开.ssh文件,找到key保存的位置,并复制key

cd ~/.ssh
ls即list,列出当前列出当前目录中的文件(不包含隐藏文件),ls -a(包含隐藏文件),ll 更详细
ls ll

  • cat XXX 打开和查看文件
  • cat id_ed25519.pub
  • 复制里面的公钥
  • 然后将公钥直接复制到个人的那个github上

(4)操作Github库

git创建一个项目的过程

————————————————
git创建一个项目的过程
————————————————
$ makdir ~/hello-world    //创建一个项目hello-world
$ cd ~/hello-world       //打开这个项目
$ git init             //初始化项目
$ touch README
$ git add README        //更新README文件
$ git commit -m 'committext'     //提交更新,并注释信息“committext” 
$ git remote add origin git@github.com:xxxxxxxxx     //连接远程github项目  
$ git push -u origin master     //将本地项目更新到github项目上去
————————————————

二、Git 常用命令

git init    // 项目初始化

添加和提交到仓库

git add README.txt                // 添加 
git status                        // 提交前查看状态
git commit -m "name"       		  // 提交
git status                        // 提交后查看仓库状态
git diff readme.txt 			  // 查看文件更改前后的内容变化

 git commit --no-verify -m “提交时的注释”    // git 上传时出现语法检查,强制提交

版本回退

// 现在->过去
git log                           // 查看历史记录  
git log --prettry=oneline         // 查看历史记录-简易版
git reset --hard HEAD^            // 回退到上一个版本
git reset --hard HEAD~10          // 回退到第前10个版本

// 过去->现在  
git reflog                        // 获得所有提交命令的版本号  
git reset --hard <commit id>      // 通过版本号回到现在  

缓存区和暂存区

git add file1 file2 file3         // 添加到缓存区
git add .                         // 添加全部修改文件 
git commit -m "name"              // 一次性提交多个文件


撤销和删除文件

// 文件内容有误,需要恢复到之前的版本:可以手动更改在commit,也可以回到HEAD^版本,本文介绍第三种方法

// - version1:没有加入到暂存区  
git status                        // 查看哪个文件被更改了
git checkout --filename           // 撤销这个文件的更改 

// - version2: 已经加入到暂存区  
git reset --hard HEAD^            // 先返回到上一版本(暂存区->工作区)
git checkout --filename           // 撤销这个文件的更改

rm filename                       // 从工作区删除filename  
git rm filename                   // 从版本库删除filename
git checkout -- filename          // 恢复删除的filename

远程仓库

ssh-keygen -t rsa –C “youremail@example.com”    // 建立github和本地电脑的SSH Key链接  

// 本地->GitHub
git remote add origin 地址  		    // 关联一个GitHub
git push -u origin master          // 本地内容推送到GitHub(第一次用)
git push origin master             // 以后每次提交用

// GitHub->本地
git clone git地址
git pull origin master    		   // 拉取最新主分支代码


//   origin/master 比较本地的仓库和远程仓库的区别
git log -p master 

创建和合并分支

git checkout -b feature1       // 创建并切换到feature1分支
git branch                     // 查看当前所有分支
git checkout master            // 切换到主分支  
git merge feature1             // 合并master和feature1分支:fast-mode模式
git merge --no-ff -m "merge with no-ff" <name>    // 合并分支,并且留下信息说明我在这里合并过 
git branch -d feature1         // 删除feature1分支

// 解决合并冲突
git log --graph --pretty=oneline --abbrev-commit   // 树状图查看分支情况

     

三、Git 远程操控Gitee仓库

(1)已有仓库最常见命令

git pull   //拉取代码 不成功试试多拉取几次
git add .    //提交更新到本机缓存上(暂存)
git commit -m "注释"    // 理解为提交并注释  (git commit -m -t  不注释直接提交 )
git push  //推送到远程

(2)第一次创建 git 仓库并操作gitee库

  1. Git 全局设置
//设置你的账号密码
git config --global user.name "Lourance"
git config --global user.email ""
  1. 创建 git 仓库
mkdir amazon
cd amazon
git init 
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin https://gitee.com/.....  //你的仓库地址项目地址
git push -u origin "master"

3.拉取提交(首次不用git pull)

 git pull //拉取项目 
 git add .
 git commit -m -t 
 git push

(2) 已有仓库

cd 项目
git remote add origin https........项目地址
git push -u origin "master"


git status 查看状态  
git rm -rf a.txt //推送删除的文件

git fetch origin  //更新本地的远程分支
git log master..origin/master  // 本地与远程的差集
git diff --stat master origin/master  //查看差异 

(3)git 更新远程代码更新到本地

git remote -v
从远程获取最新版本到本地

git fetch origin master
这句的意思是:从远程的origin仓库的
master分支下载代码到本地的origin master

(4) git 强制更新并覆盖本地修改

1.git fetch --all //从远程拉取最新的代码 不merge
2.git reset --hard origin/develop //使用指定分支的代码(此处develop)强制覆盖代码
3.git pull //从远程拉取最新的代码 自动merge

git windows端提交时出现crlf
$git config --global core.autocrlf true

(5) 将本地仓库和远程仓库进行关联

git branch(查看当前的分支是哪个,一般拉下来是master分支) 
git remote add origin https://gitee.com/lourance/spefvue.git
git add 
git commit -m "first commit"
git push -u origin "master"
git pull
git checkout -b 分支名  创建并切换分支


第二次进行更新和提交
git add .(这句是将代码暂存到本地,注意add后要空格再有点)
git commit -m ‘内容’(这个内容一般是你对代码做了哪些修改)
git push origin "master" 你的分支名(就是第二点那个分支名)

(6) GIT合并分支

① 使用merge命令合并分支

将dev分支合并到master分支

  1. 首先切换到master分支上
git checkout master
  1. 把远程master上的代码pull下来
git pull origin master
  1. 然后我们把dev分支的代码合并到master上
git merge dev 
//如果有冲突,手动解决冲突就行
  1. 然后查看状态及执行提交命令
git status

On branch master Your branch is ahead of 'origin/master' by 15 commits.   (use "git push" to publish your >local commits) nothing to
commit, working tree clean
意思: //上面的意思就是你有15个commit,需要push到远程master上 
  1. 执行下面提交命令
git push origin master 
② 合并某个分支上的单个commit(cherry-pick命令)

场景: 合并某个 分支上的单个commit ,并且你现在只需要将这个单个commit 合并到master,而不合并分支上的其他commits;

我们用git cherry-pick命令来做

	git checkout master  
	git cherry-pick 82ecb31

这样就将单个分支合并到master分支,并在master中添加了commit(作为一个新的commit)。

cherry-pick和merge比较类似,如果git不能合并代码改动(比如遇到合并冲突),git需要你自己来解决冲突并手动添加commit。

这里git cherry-pick每次合并过来会显示文件冲突(其实并没有冲突代码部分,只需手动解决既可

————————————————

③ 使用开发工具 IDEA进行分支代码合并

四、问题

常见

1、代码推送

git clone url拉取代码后,git branch -a处于 master 分支,创建个人本地分支,git checkout -b username,
git pull origin master,保证个人本地分支代码与 master 分支代码相同,然后(创建远程分支,将本地个人分支代码与远程分支创建关联并推送到远程分支)
git push origin username:username 前面一个远程分支名称可以随便取的。

2、代码改

代码改蹦,对本地代码中修改的部分不做保存,具体:
1、git fetch --all
2、git reset --hard origin/master,这里的 master 可以是远程个人分支的分支名

3、commit报错

当 git commit 的时候报错:husky > pre-commit (node v12.13.0) Stashing changes…
输入 git commit -m ‘xxx’ --no-verify 绕过了 lint 的检查即可

4、拉取指定分支代码

在 master 分支拉取指定远程分支代码
git fetch origin 本地分支名:远程分支名称,然后切换个人分支 git log 即可
或者处在 a 分支,想啦b分支的代码,
git checkout b
git pull origin b 即可

5、恢复代码

在 git status 时候发现有某个文件已经改动(还没有 add 和 commit ),但是现在不想改动,想还原,而且只需要还原这个文件,其他的改动继续提交
git checkout – @/aaa/bbb/xxx.vue 即恢复到修改之前的代码

6、切换镜像

淘宝镜像: npm install -g cnpm –registry=https://registry.npm.taobao.org (不建议)

7、修改用户名

git修改用户名
git config --system --unset credential.helper
git config --global credential.helper store

8、clone失败

$ git clone https://github.com/PanJiaChen/vue-element-admin.git
Cloning into ‘vue-element-admin’…
fatal: unable to access ‘https://github.com/PanJiaChen/vue-element-admin.git/’:
OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443
解决办法:将上面的 https 改为 git ,即 git://github.com…

9、autocrlf报错

warning: LF will be replaced by CRLF in —>
解决办法: git config --global core.autocrlf false

10、删除远端分支报错

git push origin --delete username 报错
删除远程分支报错 remote refs do not exist
解决办法: git fetch -p origin

11、超时设置

RPC failed; curl 28 OpenSSL SSL_read: Connection was reset, errno 10054
3981 error fatal: expected flush after ref listing

在我们的网络不稳定时候会遇到波动超时问题

方案一
可以增加 Git 的超时时间,以便在网络连接不稳定时有更多的时间来完成操作。你可以通过设置 Git 的全局配置来增加超时时间

git config --global http.lowSpeedLimit 0
git config --global http.lowSpeedTime 999999
git config --global http.keepAlive 300
git config --global http.maxRequestBuffer 100M
git config --global http.maxRequests 100

方案二

使用 SSH 协议进行 Git 操作,因为 SSH 在某些情况下比 HTTPS 更稳定

实际报错

1、报错 git push rejected

git报错-git push rejected

![rejected]  master->master(fetch first)
error:failed to push some refs to 'https://github.com/xxx/xxx.git'
解决方案一:

操作 git fetch,然后再次push => 依然报错
git fetch从远程仓库中获取最新代码,将其存储在本地仓库中,但不会自动合并或修改本地代码。只会将远程分支的最新状态下载到本地,以便在本地进行比较和合并。
这使得你可以查看远程分支的更新,而不会影响本地分支的代码。可以使用git merge或git rebase命令将远程分支的更改合并到本地分支上。

解决方案二:

先拉取再重新提交

hit “git pull ...” before pushing again.     
// 执行git pull,然后再执行push果然就可以了。

2、 The file will have its original line endings in your working directory

该文件将在您的工作目录中有其原始的行尾

❤ The file will have its original line endings in your working directory

执行 git add *

出现警告信息:The file will have its original line endings in your working directory

原因是路径中存在 / 的符号转义问题,false就是不转换符号默认是true,相当于把路径的 / 符号进行转义,这样添加的时候就有问题
————————————————
解决办法:执行如下命令

git config --global core.autocrlf false

3、 Not a git repository (or any of the parent directories): .git

不是git存储库(或任何父目录):.git

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林太白

感谢打赏,你拥有了我VIP权限

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值