git命令与操作学习

本文详细介绍了Git的各种基本操作,包括文件修改查看、版本控制、远程仓库连接、冲突处理、分支克隆、标签创建、公钥私钥等,帮助读者更好地理解和掌握Git的工作流程。
摘要由CSDN通过智能技术生成

命令

查看对文件修改了哪里

git diff 可以查看已经修改但未暂存的文件
git diff --cached可以查看已暂存,但未提交的文件

git diff

查看日志

第二个是在一行显示,比较简洁

git log
git log --pretty=oneline
git reflog

版本跳转

这是回退到前一个版本:

git reset --hard head^

这是跳转到指定版本:

git reset --hard 每次执行命令的commitId

查看文件内容

cat 文件名(必须包含扩展名)

撤销修改

从工作区中撤销修改:

git restore 文件名(包含扩展名)

从暂存区中撤销文件到工作区中:

git restore --staged 文件名(包含扩展名)

从本地版本库中撤销修改:
版本回退

删除文件

在文件管理器中删除文件的命令:(类似于手动右键删除文件)

rm test.txt

删除文件后git status查看后,提示使用下面使用这个命令来让git正式从工作区中删除这个文件

git rm 需要删除的文件名(包括扩展名)

正式删除后,这个删除的操作需要提交到本地版本库,使用git commit -m ‘相关注释’ 来提交删除的这个操作。

操作

连接远程仓库

将本地仓库和远程仓库(github)连接起来,需要用到SSH,点我了解

  1. 先自己在git bash中生成 SSH Key,命令如下:

$ ssh-keygen -t rsa -C “youremail@example.com”

一路回车,不需要设置密码,完成后在用户主目录里面就有.ssh文件夹,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。请添加图片描述

  1. 进入github官网,添加公钥。
    请添加图片描述

请添加图片描述
请添加图片描述

  1. 在github中创建新的仓库,了解
  2. 将本地的仓库和远程的仓库连接起来
    创建完成后,我们回到git bash中根据SSH Key将本地已经有的仓库连接到这个新创建的仓库中。使用命令:

$ git remote add origin 这里是SSH看下图

以上的连接命令中,origin是自定义的远程仓库的名称,可以任意写。

请添加图片描述请添加图片描述
注意点:
如果使用连接命令后,git bash报错:

error: remote origin already exists.

请添加图片描述
说明此时已经连接到远程中的某一个仓库身上了(可以使用命令git remote -v查看连接到了远程的那个仓库):
请添加图片描述

此时想连接到另外一个仓库需要断开这个连接:了解进一步了解

$ git remote rm origin

然后再使用连接命令:

$ git remote add origin git@github.com:Shiyibande123/learngit.git

  1. 把本地库的所有内容推送到远程库的指定分支上
    以下是推送到远程库的master分支上,第一次推送时候要加-u,以后给这个分支推送文件时就可以省去-u参数了,因为第一次时已经将本地仓库的这个分支和远程仓库的这个分支联系起来了,为以后推动或者拉取文件时简化了命令。

$ git push -u origin master

请添加图片描述

处理冲突

在其他分支上对一个文件内容进行修改,并且在此分支commit后,切换回主分支,如果也在这个文件内容进行修改,*可见,这是在不同的分支上对同一个文件进行了修改操作,*当在主分支上commit提交修改的内容后,到合并其他分支到主分支上这一步时,就会出现合并出现冲突的错误。
请添加图片描述
右上图可知,冲突是出现在 in flic.txt文件上。
此时处理冲突的方法是,打开出现冲突的这个文件,这里是flic.txt,然后手动合并,删除如<<<<<<<,=======,>>>>>>>这些标记,处理好后,重新添加到暂存区,最后提交到本地仓库即可。

git status的几种状态

了解

git 中vim编辑器的使用

了解
请添加图片描述

bug分支

了解
当我们在做开发任务时,领导给我们另外一个任务让我们去修bug,而且这个bug和我们正在开发的功能无关,那么我们就有必要把我们正在做的功能保存起来,而不是直接commit提交了,因为功能还没做完。
把我们还没做完的功能临时保存起来命令:

git stash

当我们去另外一个分支修改完bug回来后,恢复刚才临时保存起来的“现场”的命令:

git stash pop

我们去另外一个分支修改完bug提交修改后,这个bug修改只是在另外那个分支提交而已,而我们需要把这个bug的修改也合并到自己的之前做到一半的功能开发,这时需要回到自己做功能开发的分支,使用命令:

git cherry-pick 修改bug后commit提交后的commitId

这样就可以把自己当前分支刚处理的bug也修改完成了。

克隆分支

先创建一个文件夹,鼠标右键打开git bash,然后输入命令。
想克隆哪个分支就在-b后面写哪个分支的名字,分支名字后面的那一串(SSH)从github中复制即可。

git clone -b dev git@github.com:Shiyibande123/learngit.git

请添加图片描述
注意点:

  1. 克隆时如果不使用参数-b 指定分支名称的话,如这样:

git clone git@github.com:Shiyibande123/learngit.git

会有两种结果,第一:如果远程仓库中只有一个分支,会克隆这个分支下来。第二:如果远程仓库中有多个分支,有可能一个分支也克隆不下来,形如:
虽然在git bash中显示克隆成功,但是一个分支没有克隆下来:
请添加图片描述

  1. 使用命令克隆下来和直接在github中点击下载zip压缩包的区别:
    下载压缩包时只能下载选中的分支的压缩包;
    如果手动点击下载某个分支的压缩包的话,不能对它里面的文件内容的修改进行git的管理,比如修改完成后再次推送或者拉取就不行,而使用命令克隆下来的话则相反。了解
  2. 使用命令克隆下来一个分支后,就可以在当前本地仓库创建远程仓库的其他分支,并一 一进行对应,只需一行命令就可以创建本地分支并联系到远程仓库的指定分支。
    如以下创建本地dev分支并和远程仓库对应起来:

git checkout -b dev origin/dev

恢复误删的分支

了解

创建与操作标签

了解
创建标签是给某一个commit创一个人类比较容易理解的标记。因为记一个commitId和记一个commitId对应的标记是有很大的区别的。

  1. 创建标签的命令:

git tag 标签名

如果不指定commitId的话,标签是打在最近最新的commitId身上。可以使用以下来查看最近的commitId是什么:

git reflog --pretty=oneline

指定commitId的创建标签命令:

git tag 标签名 commitId

  1. 查看本地所有标签命令:

git tag

  1. 查看某个标签的信息:

git show 标签名

注意:标签总是和某个commit挂钩。如果这个commit既出现在master分支,又出现在dev分支,那么在这两个分支上都可以看到这个标签。

  1. 删除本地标签:

git tag -d 标签名

  1. 将本地标签推送到远程仓库:

git push -u origin 标签名

将本地所有标签推送到远程仓库:

git push -u origin --tags

  1. 删除远程仓库中指定的标签:

git push origin :refs/tags/远程标签名

拉取分支

了解
指的是从远程仓库中拉取某个分支的代码,使用git pull拉取代码之前,需要将git bash 和远程指定的仓库建立git remote连接(这就是和git clone的区别),如何连接到到远程的仓库,上面“连接远程仓库”这部分已经赘述。顺便提醒一下,连接到远程仓库之前需要用git init先初始化当前的文件夹,再连接。
拉取代码的命令:

$ git pull origin 远程分支

撤销修改

了解
当我们对文件进行修改后,想反悔,回到修改之前的状态(前提是没有commit提交,如果已经提交了,可以进行版本回退来跳到修改之前的版本,使用git reset --hard commitId命令)。
撤销修改的命令:(最后有一个点)

git checkout .

公钥与私钥

生成公钥的命令(在终端中输入):

ssh-keygen -t rsa -C “注册码云/github时的邮箱”

测试公钥命令:

ssh -T git@gitee.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值