学会使用git,快乐编写代码(常用命令和远程连接)

相信不管是前端还是后端的小伙伴在开发的时候都要使用到我们的代码管理工具git,当然了非计算机的友友们也是会用到的,方便管理我们的项目(文件)版本,不用再去来回复制粘贴啦。一般分可视化(sourceTree)和命令行(git Bash命令行)两种方式。今天就给大家梳理一下命令行怎么管理我们的项目(文件)。

一、git工具安装

git官网以前还好好的,现在不知道什么原因下载速度特别慢,像我这种不懂科学上网的小学生就只能耐心等待了,或者大家可以后台私信我,免费发给大家想用哈哈。

二、创建仓库(git init)

初始化当前目录为仓库,打开git自带的命令行工具,只需要在我们要创建项目的目录下单击鼠标右键选择Open Git Bash here即可。

js 复制代码
git init // 初始化当前目录为仓库

这会生成一个.git的文件,默认情况下这个文件是隐藏的我们可以使用ls -la查看到它。这个文件非常重要。它记录着我们每次修改的版本信息,方便我们去切换。

三、git常用命令

1. git add

当我们需要文件之后,使用git add .可以将文件添加到缓存区。

2. git commit和修改

  1. 当我们运行完git add .后,使用git commit -m "提交的信息"可以提交到本地仓库。到这就可以去推送远程端了(git push)

注意 :首次推送远端的时候需要运行git push -u origin "master"

  1. 当我们发现提交的信息有误想要修改怎么办?别慌教你一招👇

    js 复制代码
    git commit --amend

3. git log(提交日志)

日志就是我们每次提交和修改的信息

shell 复制代码
#git log 全部显示,感觉优点乱
# git log --pretty=oneline 这样写很优雅
# git log --oneline 优雅简化版

4. git reset(回滚)

这个挺重要的,我得整理的详细亿点。

  • 使用--soft就仅仅将头指针恢复,已经add的暂存区以及工作空间的所有东西都不变。
  • 如果使用--mixed,就将头恢复掉,已经add的暂存区也会丢失掉,工作空间的代码什么的是不变的。
  • 如果使用--hard,那么一切就全都恢复了,头变,aad的暂存区消失,代码什么的也恢复到以前状态。

1. 回滚到指定历史版本

shell 复制代码
# 1. 先使用git log查看一下历史版本
git log
# 2. 在使用git reset --hard命令回滚
git reset --hard 你要回滚的id值
# 举例:git reset --hard 10086

2. 回滚到当前版本的上一个版本

shell 复制代码
git reset --hard HEAD^
# git reset --hard HEAD~2 回退两个版本

注意 :这里的~2指回滚多少次,HEAD~2代表回滚master前二个版本

5. git status

  1. 查看当前仓库的一个状态信息。

解释:这句话的意思是我们的工作区是干净的,没有任何变更。

  1. 这是我们修改工作区文件的一个状态,此时为红色修改。
  1. 当我们使用git add .后会提交到我们的缓存区。
  1. 检查没有问题后使用git commit -m "提交信息"提交到我们的本地仓库。

小知识点:将文件撤销回到最近一次修改的状态:git checkout -- file

js 复制代码
这个功能其实就是,我们修改了文件的内容,突然发现我们改的不对,
你`Ctrl+Z`你也不知道撤销到什么时候,那么我们就可以使用这个命令啦,
直接把该文件回退到我们要修改这个文件的时候,不知道这个例子你听懂了吗?

6. 工作区与缓存区

在git下有一个概念是缓存区,这是其它集中式版本控制系统没有的

工作区:工作区就是你当前的工作目录

缓存区 :这里存放了你使用git add命令提交的文件描述信息,它位于.git目录下的index文件中

7. git reflog(提交历史)

git reflog可以查看当前版本库的提交历史,你所有奇葩的操作都会在这个里边显示。

四、git分支管理

1. git branch(git checkout)

git branch 分支名是创建一个分支,但是还有一个命令比它方便git checkout -b 分支名

  • git checkout -b dev相当于👇:创建一个分支,并且创建完成后切换到当前分支。

    shell 复制代码
     - git branch dev
     - git checkout dev
  • git branch 查看本地分支信息

  • git checkout master 切换分支到master

2. git merge(合并分支)

假如我们要开发一个新的功能,一般我们会新创建一个分支xxxx-dev,当我们在xxxx-dev开发完成后,假如我们要上线了,我们是要合并到master(主分支)上,这时就用着这个命令啦!

js 复制代码
git checkout master // 切换到我们要合并的分支
git merge xxxx-dev // 我们创建的分支(xxxx-dev)

注意:在合并分支之前,我们需要git checkout切换到我们主分支上再合并我们自己的分支。

3. 删除本地分支

当我们功能上线完成后,再出现新的Bug修改,我们直接拉取master代码就可以了。然后再创建新的分支,此时我们之前的xxxx-dev分支就不需要了,我们就可以删除啦。

shell 复制代码
git branch -D 分支名

小知识点:远端分支怎么删除呢?

删除远程分支:git push origin --delete 远程分支名

注意:这里的远程分支名不需要加origin,输入分支名就可以了

五、远程连接远程仓库

把项目(文件)推送到远程仓库可以方便我们在其他电脑或手机查看,远程仓库有githubgitee,github网速有点慢,这里我使用gitee进行演示,他们大体上是一样的。

1. 配置本地环境

  1. 右键打开我们的git工具

  2. 配置一下我们的用户名和邮箱

    js 复制代码
    git config --global user.name "username" //( "username"是咱们自己的账户名:像我的就是iyongbao)
    git config --global user.name "username"    //( "username"是自己的账户名:像我的就是iyongbao@outlook.com)
    git config --global --list // 查看我们配置对不对呀

2. 生成ssh密钥

这个东西可以让我们本机和远程仓库建立连接

js 复制代码
ssh-keygen -t rsa // 一直敲回车键出现下面图片展示就可以了

这个密钥在我们电脑的C:\Users\xxxxx\.ssh

3. 配置gitee

关于gitee的登录注册这里就不做演示了。gitee官网

测试我们的配置是否成功,打开我们电脑的git命令行工具,输入ssh -T git@github.com。首次我们需要输入yes

4. git remote

在连接远程仓库的时候我们可能会用到,比如我们电脑想同时把项目(代码)推送到giteegithub,这个时候我们就需要用到它了,git remote 本质上是用来管理远端仓库列表的命令,这些远端仓库的信息都被保存在 ./git/config 文件中。下边列举几个常用的命令👇

js 复制代码
git remote -v // 展示当前关联的其他仓库列表
git remote show origin // 获取本地分支和远程分支之间的关系
git remote rename <old> <new> // 重命名远程分支
git push origin :testa // 删除远程分支, testa是远程分支
git remote prune origin // 删除本地分支在远程不存在的分支
git remote get-url origin // 获取远程仓库的URL

5. 小结

到这里就可以了,我们能够使用sshclone我们gitee上边的项目。

六、总结

今天就先写这么多吧!有遗漏的以后在补充,这是我平常工作中能用到的一些命令,希望对大家有所帮助,其实git在我们的工作中十分的重要,没接触git之前,我会复制好多文件file1、file2、file3,到关键的时候呢可能还会忘记这个文件是做什么的,现在想想就好笑。欢迎大家评论留言,让我们共同进步。

哦,对了!2023年马上就要过去了,今年你定下的愿望都实现了吗?技术上有没有突飞猛进呢?有没有达到自己所期望的状态呢?人呀!总是在不断的学习和模仿中成就自己,你是我也是,我们一起迈向更好的2024

相关推荐
Winston Wood2 小时前
一文了解git TAG
git·版本控制
喵喵先森2 小时前
Git 的基本概念和使用方式
git·源代码管理
xianwu5434 小时前
反向代理模块
linux·开发语言·网络·git
binishuaio6 小时前
Java 第11天 (git版本控制器基础用法)
java·开发语言·git
会发光的猪。7 小时前
如何在vscode中安装git详细新手教程
前端·ide·git·vscode
stewie68 小时前
在IDEA中使用Git
java·git
晓理紫17 小时前
使用git lfs向huggingface提交较大的数据或者权重
git
我不是程序猿儿19 小时前
【GIT】sourceTree的“当前分支“,“合并分支“与“检出分支的区别
git
_OLi_1 天前
IDEA中新建与切换Git分支
java·spring boot·git
PyAIGCMaster1 天前
ubuntu下安装 git 及部署cosyvoice(1)
git