Git常用的指令和方法

本文介绍了Git的常用操作,包括添加SSH密钥、查看和修改用户信息、管理远程仓库,以及从远程仓库下载、上传文件、解决git错误等。此外,还涵盖了更新远程代码到本地、解决git命令卡顿问题和导入他人仓库到个人仓库的方法。
摘要由CSDN通过智能技术生成

命令介绍

在这里插入图片描述

添加ssh秘钥

执行 ssh-keygen -C “1056585823@qq.com”,然后两次回车

$ ssh-keygen -C "1056585823@qq.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/Zero/.ssh/id_rsa):
Created directory '/c/Users/Zero/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/Zero/.ssh/id_rsa
Your public key has been saved in /c/Users/Zero/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:P27o6Znw5L5+hhmMPA4PdXaPNLJA2nQdfPXIi0uAwog 1056585823@qq.com
The key's randomart image is:
+---[RSA 3072]----+
|         o.. ..  |
|   . oo ..o .. o |
|  E .=o.. ..  o .|
|    . +.+ +. . . |
|     o *S= +o .  |
|    o + +.....   |
|     =...=o .    |
|      o=+=+.     |
|       =%=.      |
+----[SHA256]-----+

生成的秘钥在/c/Users/Zero/.ssh/id_rsa.pub 打印出来

$ cat /c/Users/Zero/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCxI4P93fRQbAz9MR4JUfTOZShuoqxrH9yZgC5Z98nQFMvVv+JGgqBUnm3EW41sRn1/M5b3+G+7vuDct/U4k1KqR+wck0ewWZwcRpoJfg5Q3SU8JzXTADy3eeJ3mZ5C5jh7NT8zUhQVxo8DqQpxlQr1Vy1FmQrNT+KXNBNObnreDCEzZ5/DBgNs11SYT/sD+7XSRnmJK4wqBendpBHI28OcSx36IJb1Ib/dDqQtonoQc/q7fb7b5eQffkSD/j4j8uCd54XURUHvXM7uZl5WUpM+f0xHjb8UW66khS6jXkVBGwqqqPV9KFocpbzyvYzEAAimUPitHWpfIbEI0PJ24y5cHHYXDa0ncdO1/lHMd50jpFZiFi48CPUY2Eb5lfoVcvYeWDYqpeemM1kHEg7Y7CQ/iyhvC9onRNzgVx948x5gMGFGrRCbFympnuPg2/MceC/U5BXBcHRd8pBJJvj/B8tXbVmBEA9UhrIfSJ2qj2a/n2IK0LwuDHARgBWtUFqpIq0= 1056585823@qq.com

复制公钥添加到git上面 如下
在这里插入图片描述

一.Linux超级用户指令无法补全

source /etc/bash_completion.d/git
# or
source /usr/share/bash-completion/completions/git

二.一下常用命令

1.查看当前登录用户邮箱信息和修改登录用户

获取当前登陆用户:

git config user.name   //获取当前登录的用户
git config user.email  //获取当前登录用户的邮箱

修改登陆用户:

git config --global user.name 'userName'    // 修改登陆账号,userName为你的git账号
git config --global user.email 'email'      // 修改登陆邮箱,email为你的git邮箱
git config --global user.password 'password'  // 修改登陆密码,password为你的git密码

2.查看远程仓库git remote -v

root@yyc-virtual-machine:/home/windShare/gitZero/master# git remote -v
master	https://gitee.com/wulnet/master (fetch)
master	https://gitee.com/wulnet/master (push)
origin	https://gitee.com/wulnet/master (fetch)
origin	https://gitee.com/wulnet/master (push)

二.Git使用案例

1.从远程下载仓库的方法

1.创建远程仓库,以gitee为例

创建新的仓库
在这里插入图片描述
设置仓库名称和路径
在这里插入图片描述

2.将创建好的仓库下载到本地

设置登录的账号和邮箱

root@yyc-virtual-machine:/home/windShare/gui/LinuxSrc# git config --global user.name "wul**"
root@yyc-virtual-machine:/home/windShare/gui/LinuxSrc# git config --global user.email "10***3@qq.com"

下载仓库地址来来自下面这里
在这里插入图片描述
建的是私有仓库 所以需要输入账号密码

root@yyc-virtual-machine:/home/windShare/gui/LinuxSrc# git clone https://gitee.com/wulnet/project
正克隆到 'project'...
Username for 'https://gitee.com': 

下载完成后 "project " 目录是下载下来的

root@yyc-virtual-machine:/home/windShare/gui/LinuxSrc# ls
Led  project  Recorder  Recorder.zip  Route  Update

3.上传文件夹到远程仓库

将Recorder 整个目录上传到project 上面
因为是目录所以需要在里面建一个隐藏文件表面他是目录,建空的文件".deep"(如果是文件则不存在这个问题)
然后吧整个文件夹移动过去

root@yyc-virtual-machine:/home/windShare/gui/LinuxSrc# mv Recorder project/
root@yyc-virtual-machine:/home/windShare/gui/LinuxSrc# ls
Led  project  Recorder.zip  Route  Update
root@yyc-virtual-machine:/home/windShare/gui/LinuxSrc/project# ls
README.en.md  README.md  Recorder

查看远程仓库,没有的话需要添加才行

root@yyc-virtual-machine:/home/windShare/gui/LinuxSrc/project# git remote -v
origin	https://gitee.com/wulnet/project (fetch)
origin	https://gitee.com/wulnet/project (push)

添加方法(可以理解为添加到本地仓库 origin是本仓库名字 "https://gitee.com/用户地址/gitcode.git"是远程仓库地址)

 $ git remot add origin https://gitee.com/用户地址/gitcode.git     //添加远程仓库

4. 上传命令

将项目添加到仓库中去:git add .,如果添加某个文件,可以使用git add xxx

root@yyc-virtual-machine:/home/windShare/gui/LinuxSrc/project# git add .

git status 查看被更新过的文件
在这里插入图片描述

git add .执行出现错误

1.文件输入输出错误
解决方法1:可以重复执行git add .
解决方法2:重复执行git add . ,然后执行git status 然后再执行git add . ,可以尝,有些时候可以解决

error: unable to create temporary file: Input/output error
error: build-TreeDemo14-Desktop_Qt_5_14_1_MinGW_32_bit-Debug/moc_predefs.h: failed to insert into database
error: unable to index file build-TreeDemo14-Desktop_Qt_5_14_1_MinGW_32_bit-Debug/moc_predefs.h
fatal: adding files failed

将添加的文件提交到仓库:git commit -m “可以给本次上传所有文件添加一个备注”
在这里插入图片描述
把文件推送到github仓库:git push -u origin master,下次推送时,可以把-u去掉

在这里插入图片描述

5.执行推送出现错

Counting objects: 30, done.
Delta compression using up to 4 threads.
fatal: loose object 0106e249455c18488e7d58fb1c6187da30659c7f (stored in .git/objects/01/06e249455c18488e7d58fb1c6187da30659c7f) is corrupt
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
fatal: write error: Bad file descriptor
解决方法一

解决参考链接: GIT,致命的:远端意外挂断.
本文中执行了git config http.postBuffer 524288000就解决了

root@yyc-virtual-machine:/home/windShare/gui/LinuxSrc/project#  git config http.postBuffer 524288000
解决方法二

关闭电脑的所有防火墙,这里可能是因为我使用了linux SMB的方式挂载windows共享文件导致的,git的数据都在共享文件目录

再次执行

root@yyc-virtual-machine:/home/windShare/gui/LinuxSrc/project# git push origin master 
Username for 'https://gitee.com': wulnet
Password for 'https://wulnet@gitee.com': 
枚举对象: 363, 完成.
对象计数中: 100% (363/363), 完成.
使用 8 个线程进行压缩
压缩对象中: 100% (358/358), 完成.
写入对象中: 100% (362/362), 8.90 MiB | 1.92 MiB/s, 完成.
总共 362 (差异 56),复用 0 (差异 0)

remote: Resolving deltas: 100% (56/56), done.
remote: Powered by GITEE.COM [GNK-5.0]
To https://gitee.com/wulnet/project.git
   1539b06..8e2ef2a  master -> master
root@yyc-virtual-machine:/home/windShare/gui/LinuxSrc/project# 
root@yyc-virtual-machine:/home/windShare/gui/LinuxSrc/project# 

在这里插入图片描述
在这里插入图片描述

三.git clone ****下载时出现输入输出错误

在该目录执行 git init

四.更新远程代码到本地,远程代码覆盖本地

参考链接

这种方式比较简单也好理解,如果本地代码没有修改,只需要执行中间两行就可以。

git stash        # 暂存本地的修改
git fetch --all  # 拉取项目更新
git pull         # 下载覆盖
git stash pop    # 释放本地修改

五.windows使用mysmgit的git bash命令卡顿

解决方法:网络上说是要设置显卡,我这个win10的关闭360杀毒软件就解决了

六.将从别人那里下的git仓库导入到自己的仓库

解决方案https://www.oschina.net/question/82993_133520

方案1:
从原始地址clone一份bare仓库

$ git clone --bare https://gitee.com/Barryda/QtScrcpy.git(例子)

在Git@OSC上创建一个项目(http://git.oschina.net/projects/new),这里注意,不要勾选使用Readme初始化项目,不要选择项目的授权协议和.gitignore 文件,因为这些会导致项目有第一个提交。
记下新建项目后的地址,推荐使用http或者ssh方式皆可,大项目推荐ssh方式。

$ cd qt-scrcpy.git
$ git push --mirror  https://gitee.com/wulnet/qt-scrcpy.git

此命令执行完成后即完成导入,删除 impress.js.git 文件夹即可。

七.git 强制远程仓库覆盖本地代码

1.连接远程仓库 git remote add origin 远程地址

2.git强制覆盖:

    git fetch --all
    git reset --hard origin/master
    git pull

八.下载历史版本

步骤一:首先git clone 当前项目至文件夹
步骤二:cd 进入clone下来的项目文件夹内
步骤三:在git 仓库查看SHA,或输入命令git log 查看提交的历史commit
在这里插入图片描述
步骤四:复制需要回退版本到的commit后面序列,命令如下即可回退到指定版本

 git checkout xxxxxxxxxxxxxxx
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值