赶在入职之前,再来学习一遍Git的常见命令!

一、引言

Git是一款分布式版本控制系统,广泛应用于软件开发中。它可以帮助团队协作开发,追踪代码变更,回滚错误提交等。将我们的项目与远程仓库(如GitHub、GitLab等)连接起来,以便协作和备份。不管是在平时的个人开发练习中,还是在企业里的团队协作开发中,掌握git的使用都是一项必不可少的技能。

二、常用命令

  • 1.初始化一个Git仓库
bash 复制代码
$ git init

这将创建一个名为.git的目录,用于存储版本历史和元数据。

  • 2.提交更改

在Git中,你需要将你的更改提交到版本历史中。以下是基本的提交流程:

bash 复制代码
$ git add .                   # 将所有更改添加到暂存区
$ git commit -m "描述"  # 提交更改并添加描述,提交到本地仓库
  • 3.查看历史

我们可以使用以下命令查看项目的提交历史:

bash 复制代码
$ git log

这将显示所有提交的详细信息,包括提交哈希值、作者、日期和提交消息。能根据提交时间看出来大家有没有在加班。

  • 4.分支管理

分支允许你在项目中同时进行多个不同的开发任务。以下是一些常用的分支管理命令。

如果你有两个本地分支main和feature,并且当前在feature分支上,那么git branch命令的输出可能如下所示:

bash 复制代码
$ git branch 
main 
* feature

另外,可以查看远程分支和查看本地、远程分支。

bash 复制代码
$ git branch -r  #查看远程分支
$ git branch -a  #查看本地分支和远程分支

创建新分支:

bash 复制代码
$ git branch 新分支名

切换到分支:

bash 复制代码
$ git checkout 分支名

创建并切换到新分支:

bash 复制代码
$ git checkout -b 新分支名
  • 5.合并分支

当你完成一个任务时,你可以将你的分支合并回主分支:

bash 复制代码
$ git checkout 主分支 
$ git merge 要合并的分支
  • 6.版本回退

将HEAD指针和当前分支的提交历史重置到指定的状态。

git reset这个命令用于常见的用法有:

bash 复制代码
# 将HEAD指针移动到指定的提交,并保留修改,这样可以重新提交
$ git reset --soft <commit> 

# 将HEAD指针移动到指定的提交,并取消暂存的修改,这样可以重新选择要提交的内容
$ git reset --mixed <commit> 

# 将HEAD指针移动到指定的提交,并丢弃所有的修改,恢复到指定提交的状态
git reset --hard <commit>

# 撤销工作区的修改
$ git checkout -- <file-name>

git reset对于本地分支的历史重写是安全的,但是需要谨慎使用,因为它会改变提交历史。

  • 7.撤销提交

git revert这个命令用于创建一个新的提交,用于撤销之前的提交。它会创建一个新的提交,将之前的提交的更改反转回去。

bash 复制代码
# 撤销指定的提交,并创建一个新的提交来反转更改
$ git revert <commit> 

git revert适用于公共分支的历史撤销,因为它不会改变提交历史,而是创建一个新的提交来撤销更改。

  • 8.应用提交

git cherry-pick命令用于将指定的提交应用到当前分支。它会将指定提交的更改复制到当前分支,并创建一个新的提交。

bash 复制代码
#将指定的提交应用到当前分支。
$ git cherry-pick <commit>

git cherry-pick适用于从其他分支选择性地复制提交的更改,并将其应用到当前分支。

三、常见使用场景

1. 设置用户名和邮箱

在Git中设置用户名和邮箱是为了标识代码提交的作者信息。

  1. 设置全局用户名和邮箱:
bash 复制代码
$ git config --global user.name "Your Name"
$ git config --global user.email "your.email@example.com"
  1. 设置仓库级别的用户名和邮箱(仅对当前仓库有效):
bash 复制代码
$ git config user.name "Your Name"
$ git config user.email "your.email@example.com"

在上述命令中,将 "Your Name" 替换为你的真实姓名,将 "your.email@example.com" 替换为你的真实邮箱地址。

我们可以使用以下命令来验证用户名和邮箱是否设置成功:

bash 复制代码
$ git config user.name
$ git config user.email

这些命令将显示当前设置的用户名和邮箱。

注意:设置全局用户名和邮箱后,它们将被应用于所有的Git仓库。如果你想为某个特定的仓库设置不同的用户名和邮箱,可以使用仓库级别的设置。

2. 开发完成后把代码提交到远程仓库

首先,使用git add命令将修改的文件添加到暂存区。

bash 复制代码
$ git add .

或者,可以将指定的文件添加到暂存区:

bash 复制代码
$ git add <file-name>

然后,使用git commit命令将暂存区的文件提交到本地仓库,并添加提交信息。提交信息应该清晰地描述本次提交的内容。

bash 复制代码
$ git commit -m "Commit message"

接下来,使用git remote add命令将本地仓库与远程仓库关联。需要提供远程仓库的URL。其中,origin是远程仓库的名称,可以根据需要修改。使用以下命令添加至远程仓库:

bash 复制代码
$ git remote add origin <remote-url>

然后,使用git push命令将本地仓库的提交推送到远程仓库。可以使用以下命令将当前分支的提交推送到远程仓库:

bash 复制代码
$ git push origin <branch-name>

其中,<branch-name>是要推送的分支的名称,例如master。完成以上步骤后,代码就会被提交到远程仓库。

3. 解决代码冲突

当同时修改同一文件的同一部分、合并分支时、同时删除文件或目录、提交历史被重写时都有可能发生冲突,当在Git中提交代码时出现冲突时,需要手动解决冲突。

  1. 1.运行git stash push将本地修改暂存起来,以便后续恢复。
  2. 2.获取远程更新:我们需要获取远程仓库的最新代码,以确保你的本地代码是最新的。
bash 复制代码
$ git pull origin 主分支
  1. 3.解决冲突:如果在获取远程更新的过程中出现了冲突,Git会自动标记出冲突的部分。我们需要手动编辑文件以解决这些冲突。
bash 复制代码
<<<<<<< HEAD
// 代码来自当前分支
=======
// 代码来自其他分支
>>>>>>> branch-name

这表示冲突发生在<<<<<<< HEAD>>>>>>> branch-name之间的代码块。我们需要手动选择保留本地更改或者使用远程的更改,或者将二者结合起来。

  1. 4.添加解决后的文件:在解决冲突后,将修改后的文件标记为已解决:
bash 复制代码
$ git add <文件名>
  1. 5.提交解决后的文件:
bash 复制代码
$ git commit -m "解决冲突"
  1. 6.推送解决后的代码:
bash 复制代码
$ git push origin 主分支

四、最后的话

本文仅提供了很少一部分的Git命令和示例代码,并不能涵盖所有的Git功能。在实际工作中,我们还需要根据具体需求学习和使用更多的Git命令和技巧。

能力一般,水平有限,本文可能存在纰漏或错误,如有问题欢迎指正,感谢你阅读这篇文章,如果你觉得写得还行的话,不要忘记点赞、评论、收藏哦!祝大家生活愉快!

相关推荐
别拿曾经看以后~25 分钟前
【el-form】记一例好用的el-input输入框回车调接口和el-button按钮防重点击
javascript·vue.js·elementui
我要洋人死27 分钟前
导航栏及下拉菜单的实现
前端·css·css3
川石课堂软件测试30 分钟前
性能测试|docker容器下搭建JMeter+Grafana+Influxdb监控可视化平台
运维·javascript·深度学习·jmeter·docker·容器·grafana
科技探秘人39 分钟前
Chrome与火狐哪个浏览器的隐私追踪功能更好
前端·chrome
科技探秘人40 分钟前
Chrome与傲游浏览器性能与功能的深度对比
前端·chrome
JerryXZR1 小时前
前端开发中ES6的技术细节二
前端·javascript·es6
七星静香1 小时前
laravel chunkById 分块查询 使用时的问题
java·前端·laravel
q2498596931 小时前
前端预览word、excel、ppt
前端·word·excel
小华同学ai1 小时前
wflow-web:开源啦 ,高仿钉钉、飞书、企业微信的审批流程设计器,轻松打造属于你的工作流设计器
前端·钉钉·飞书
problc1 小时前
Flutter中文字体设置指南:打造个性化的应用体验
android·javascript·flutter