Git开发中的常用指令及其使用场景详解

 更新时间:2026年05月08日 08:45:12   作者:无敌小肥007  
本文介绍了Git的安装、配置以及基本操作,包括创建和初始化仓库,常用命令如分支管理,提交和撤回操作,还涵盖了协作中遇到的拉取代码、解决冲突的场景,希望对大家有所帮助

一、Git安装

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

官网下载地址:https://git-scm.com/downloads

二、配置Git工具

2.1 用户信息配置

对所有本地仓库的用户信息进行配置

1、对你的commit操作设置关联的用户名

git config --global user.name "[name]"

修改用户名

git config --global --replace-all user.name "[name]"

2、对你的commit操作设置关联的邮箱地址

git config --global user.email "[email address]"

修改邮箱地址

git config --global --replace-all uesr.email "[email address]"

3、启用有帮助的彩色命令行输出

git config --global color.ui auto

2.2 查看配置

查看用户名:

git config user.name

查看密码:

git config user.password

查看邮箱:

git config user.email

查看配置信息:

git config --list  

三、初始化仓库

3.1 创建仓库

1、创建文件夹

mkdir my-project

2、进入文件夹

cd my-project

3、git初始化

git init 

1、2、3 步是基于没有仓库时的操作,如果仓库存在1、2、3步可替换为git clone 远程仓库地址

进入文件夹

cd my-project

4、创建readme文件

touch README.md

5、添加readme文件到暂存状态

git add README.md

添加全部

git add .

6、把暂存状态的文件提交到本地备注为"first commit"

git commit -m "first commit"

7、远端仓库建立连接 名称origin对应远端仓库地址

git remote add origin https://gitee.com/wudixiaofei/my-project.git

8、推送代码至代码仓库 首次提交添加 -u

git push -u origin "master"

提交代码到对应分支

git push origin branch_name

如果有多个仓库需要推送,如gitee、github

远程地址A:'gitee/my-project.git'  //设为'originA'
远程地址B:'github/my-project.git' //设为'originB'

$ git remote add originA giteeurl
$ git remote add originB githuburl

查看本地对应的远程仓库
$ git remote -v

操作追加远程推送B
$ git push originA master:master
$ git push originB master:master

删除与远端建立的连接
$ git remote remove "连接名字"

四、常用命令

4.1 git clone拉取远端仓库

拉取远端仓库
git clone 远程仓库地址

代码拉取下来后,就需要有分支的概念

4.2 git分支操作

查看分支

星号(*)表示当前所在分支

查看远端分支
git branch -r

查看本地分支
git branch

查看所有分支
git branch -a

分支操作

创建新分支 下级用/
git branch dev
git branch dev/featrue

修改本地分支名称
git branch -m oldName newName

检出分支、切换分支到dev
git checkout dev

本地分支推送至远程分支
git push origin 本地分支名:远程分支名
> git push origin develop:develop

删除本地分支
git branch -D branch_name

删除远程分支
git push origin --delete branch_name
> git push origin --delete develop

4.3 撤回操作

撤回删错的分支

1、找到删除branch的 hash 值
git reflog 

2、创建对应branch
git checkout -b new_branch_name hash

撤回提交

HEAD:它是一个指向你正在工作中的本地分支的指针,可以将 HEAD 想象为当前分支的别名。

HEAD^ 的意思是上一个版本,也可以写成HEAD~1如果你进行了2次commit,想都撤回,可以使用HEAD~2或者HEAD^^

reset 用于本地的commit操作撤回

1、代码恢复到上一次提交
git reset --mixed HEAD^

参数:
	--mixed 默认参数
	意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作。
	--soft 
	意思是:不删除工作空间改动代码,撤销commit,不撤销git add 。
	--hard
    意思是:删除工作空间改动代码,撤销commit,撤销git add . 操作。

2、如果只是修改注释
git commit --amend
会进入默认vim编辑器,修改注释完毕后保存就好了

revert 用于远程push操作的撤回

因为是远程,revert是会有新纪录C2’此时C2’ 的状态与 C1 是相同的。

git revert HEAD^ 

4.3 拉取代码操作

拉取对应分支代码 
git pull origin branch_name

4.4 贮存操作

用于暂时保存没有提交的工作。运行该命令后,所有没有commit的代码,都会暂时从工作区移除,回到上次commit 时的状态。

1、没有被 add 过的文件不会被贮藏

2、git stash -u 可以把没有被add的文件也被贮藏

(–include-untracked)

SourceTree里的贮藏

1、添加贮藏
git stash save "贮藏备注" 

2、查看贮藏列表
git stash list

3、取出指定内容
git stash apply stash@{0}

五、使用场景

5.1 克隆仓库

小白入职第一天:

1、安配配置git

2、拿到分配的账号登录公司代码仓库如gitlab、gitee、coding

3、账号的安全设置处绑定公钥

4、$ git clone 对应仓库地址

5、大佬安排看看代码,熟悉一下

5.2 检出分支

场景1:小白进了一家私企没几天就来了一个工期3天的新需求,准备要大展身手。

于是,小白checkout出了公司的dev分支,开始大干一番$ git checkout dev

5.3 提交代码

2天过去了,产品经理问,小白啊,怎么没有看见你的近两天的代码提交呀?还没开始吗?

小白:原来没写好也要提交代码给上级看,那我马上提交。答到:『噢噢,写的差不多了,马上提交』

$ git add .

$ git commit -m "新功能"

$ git push origin 本地分支名:远程分支名

大佬:我刚补的bug合并代码发版了,咦,怎么起不来服务了,一看代码提交,小白你提交的代码有问题,影响到主业务了。

小白:啊(慌了)!

大佬:如果你需要开发新功能,要把当天的代码提交的话,你就在feature新建一个功能就行,测试好我再合并发版。大佬耐心讲到我司规范:

master 是主分支,一般是保护分支,管理员才能操作

dev 是开发分支,开发先拉这个分支

feature 是功能模块,如:

  • ----feature/login (登录功能)
  • ----feature/用户导入 (导入功能)

新增的功能加就行: 『feature/功能名称』

hotfix 修补bug模块,如:

  • ----hotfix/login (修补登录功能)
  • ----hotfix/导入 (修补导入功能)

refactor 重构模块

小白赶忙撤回提交:

$ git log 查看提交日志

找到自己提交的hash,例如:(2c479a5)

$ git revert ${commit hash} ...${commit hash}

revert后那次提交的代码就会被撤回,日志的hash显示为(c18fad1ba),但是我辛辛苦苦写的代码咋就不见了。

于是,创建并切换分支feature/我的功能

$ git checkout -b feature/我的功能

该分支是从当前分支上检出的,所以所有文件内容都和当前分支一模一样。再revert一遍即可

$ git revert c18fad1ba

可以看见,代码都回来了。

5.4 协作问题

场景2 :小白开启了新分支完成功能后准备合并到主分支。

$ git diff dev feature/我的功能

使用diff查看分支差异,发现和大佬提交的代码同时修改了几个文件。

解决冲突(合并、变基)

<<<<<<< 
=======, 
>>>>>>> 

merge

当前分支在主分支,如master

  • $ git merge 目标分支 --只保留单条分支记录
  • --no-ff --关闭fast-forward方式,可以查看到分支状态。
  • --squash – 需要进行一次额外的commit来总结最终的合并。

如果有冲突文件,在这一步处理完

  • $ git add . – 添加改动
  • $ git commit -m "merge" – 本地提交
  • $ git push origin feature/我的功能:master – 推送到master

rebase

当前分支在开发分支,如feature/我的功能

$ git rebase master --rebase操作

如果有冲突文件,在这一步处理完

  • $ git add . --添加改动
  • $ git rebase --continue --继续rebase
  • --abort --放弃合并,回到操作前的样子。

处理完所有冲突后,提示

Successfully rebased and updated refs/heads/feature/我的功能

$ git push origin feature/我的功能:master--推送到master

以上就是Git开发中的常用指令及其使用场景详解的详细内容,更多关于Git常用指令的资料请关注脚本之家其它相关文章!

相关文章

  • 调试JavaScript/VBScript脚本程序(IE篇)

    调试JavaScript/VBScript脚本程序(IE篇)

    JavaScript/VB Script脚本程序一般有两种执行方式,一种是嵌入在宿主程序里面执行,比如在IE浏览器里面执行;另外一种,在资源管理器里面双击执行(虽然还是通过另外一个程序解释执行,但是给人的感觉毕竟是直接运行)。
    2009-09-09
  • Git基础学习之分支基本操作详解

    Git基础学习之分支基本操作详解

    这篇文章主要为大家详细介绍了Git基础学习中分支的基本操作,例如分支的创建、查看、切换和删除等,感兴趣的小伙伴可以跟随小编一起学习一下
    2022-10-10
  • 详解Visual Studio中Git的简单使用

    详解Visual Studio中Git的简单使用

    这篇文章主要介绍了Visual Studio中Git的简单使用,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • git切换到指定远程分支的方法

    git切换到指定远程分支的方法

    这篇文章主要介绍了git切换到指定远程分支的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Solidity 变量详解之类型、作用域与最佳实践记录

    Solidity 变量详解之类型、作用域与最佳实践记录

    这篇文章主要介绍了Solidity 变量详解:类型、作用域与最佳实践,本文结合实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2024-12-12
  • vscode入门教程之页面启动与代码调试

    vscode入门教程之页面启动与代码调试

    VScode是微软推出的一款轻量级的编辑器,采用了和VS相同的UI界面。今天小编给大家带来一篇如何使用vscode来进行最基本的工作的小教程,希望大家能够喜欢
    2020-01-01
  • CLion中编译ROS工程的配置详细教程

    CLion中编译ROS工程的配置详细教程

    这篇文章主要介绍了CLion中编译ROS工程的配置,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • git使用教程(最详细、最傻瓜)

    git使用教程(最详细、最傻瓜)

    这篇文章主要介绍了git使用教程(最详细、最傻瓜),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • 导致爬虫无法使用的原因探讨解决

    导致爬虫无法使用的原因探讨解决

    随着互联网的普及和发展,爬虫技术也越来越多地被应用到各个领域,然而,在实际使用中,爬虫可能会遇到各种问题导致无法正常工作,本文将探讨导致爬虫无法使用的原因,并给出相应的解决方法
    2023-10-10
  • 多端登录如何实现踢人下线需求实现

    多端登录如何实现踢人下线需求实现

    这篇文章主要为大家介绍了多端登录如何实现踢人下线的需求实现详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05

最新评论