博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Git常用的指令和方法
阅读量:769 次
发布时间:2019-03-24

本文共 6252 字,大约阅读时间需要 20 分钟。

Git常用的指令和方法

命令介绍

在这里插入图片描述

添加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_rsaYour public key has been saved in /c/Users/Zero/.ssh/id_rsa.pubThe key fingerprint is:SHA256:P27o6Znw5L5+hhmMPA4PdXaPNLJA2nQdfPXIi0uAwog 1056585823@qq.comThe 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.pubssh-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# orsource /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 -vmaster	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# lsLed  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# lsLed  project  Recorder.zip  Route  Updateroot@yyc-virtual-machine:/home/windShare/gui/LinuxSrc/project# lsREADME.en.md  README.md  Recorder

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

root@yyc-virtual-machine:/home/windShare/gui/LinuxSrc/project# git remote -vorigin	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 errorerror: build-TreeDemo14-Desktop_Qt_5_14_1_MinGW_32_bit-Debug/moc_predefs.h: failed to insert into databaseerror: unable to index file build-TreeDemo14-Desktop_Qt_5_14_1_MinGW_32_bit-Debug/moc_predefs.hfatal: 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 corruptfatal: The remote end hung up unexpectedlyfatal: The remote end hung up unexpectedlyfatal: write error: Bad file descriptor

解决方法一

解决参考链接: .

本文中执行了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': wulnetPassword 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 -> masterroot@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仓库导入到自己的仓库

解决方案

方案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

转载地址:http://ftvkk.baihongyu.com/

你可能感兴趣的文章