【实用版】使用git管理项目代码git命令的方式

基本使用
  1. 初始化仓库:在项目的根目录下,打开终端并执行以下命令来初始化一个新的 Git 仓库:

    git init
    
  2. 添加文件到暂存区:将项目中的文件添加到 Git 的暂存区,以便将其纳入版本控制。使用以下命令添加文件:

    git add <文件名>
    

    如果你想添加所有文件,可以使用以下命令:

    git add .
    
  3. 提交更改:将暂存区的文件提交到 Git 仓库,创建一个新的提交记录。使用以下命令提交更改:

    git commit -m "提交信息"
    

    请确保在 -m 参数后面添加有意义的提交信息,以便日后能够清晰地了解每个提交的目的。

  4. 远程仓库操作:

    • 关联远程仓库:如果你的项目还没有关联到远程仓库,可以使用以下命令将本地仓库与远程仓库进行关联:

      git remote add origin <远程仓库URL>
      
    • 推送到远程仓库:将本地仓库的提交推送到远程仓库。使用以下命令推送到 origin 远程仓库的 main 分支:

      git push origin main
      
    • 克隆远程仓库:如果你要使用已经存在的远程仓库作为你的项目的起点,可以使用以下命令克隆远程仓库到本地:

      git clone <远程仓库URL>
      
  5. 分支管理:

    • 创建分支:使用以下命令创建一个新的分支:

      git branch <分支名>
      
    • 切换分支:使用以下命令切换到指定的分支:

      git checkout <分支名>
      
    • 合并分支:将指定分支的更改合并到当前分支。首先切换到接收更改的分支,然后使用以下命令进行合并:

      git merge <要合并的分支名>
      
    • 查看分支:使用以下命令查看所有分支及当前所在分支:

      git branch
      

以下为常见问题及处理办法

提问:git如何指定提交文件或文件夹?
可以使用以下命令来指定提交特定的文件或文件夹:

git add <文件或文件夹路径>

例如,要提交名为 “file1.txt” 和 “file2.txt” 的文件,你可以运行:

git add file1.txt file2.txt

或者,如果要提交名为 “folder1” 的文件夹及其下的所有内容,你可以运行:

git add folder1/

请注意,添加文件或文件夹到暂存区后,仍然需要执行 git commit 命令来提交更改。


提问:获取某人最近一周的提交记录?

git log --author=<username> --since="1 week ago" --pretty=format:"%h %an %ad %s" --date=format:'%Y-%m-%d %H:%M:%S' > commit_history.txt

提问:想撤销上一次提交?
可以使用以下命令:

git revert HEAD

这将创建一个新的撤销提交,将上一次提交的更改反转回去。Git 会自动打开一个编辑器,以便输入撤销提交的消息。只需保存并关闭编辑器即可。
接下来,如果你想将这个撤销提交推送到远程仓库,可以使用以下命令:

git push origin <branch-name>

<branch-name> 替换为你要推送的分支名称,通常是 master 或其他你正在工作的分支。


提问:如何回退到某个指定的revision number?
假设你要回退到提交号为 <commit-hash> 的提交,可以执行以下命令:

git reset <commit-hash>

【备注】revision number=commit-hash

这将使 HEAD 指向指定的提交,并将之后的提交移除。请注意,这个操作将会丢失回退后的提交及其后的提交历史。如果你希望保留回退后的更改,可以使用 git stash 命令来保存当前的更改。

另一种方法是使用 git checkout 命令来回退到指定提交,同时创建一个新的分支,以便在需要的时候可以轻松返回到当前分支。运行以下命令:
建议使用

git checkout -b new-branch <commit-hash>

这将创建一个名为 new-branch 的新分支,并将其指向指定的提交。你可以在新分支上进行操作,保留回退前的提交历史。

请确保将 <commit-hash> 替换为你要回退到的具体提交的哈希值或提交号。


提问:如何删除远程分支?
假设你要删除名为 <remote-branch> 的远程分支,可以执行以下命令:

git push <remote-name> --delete <remote-branch>

在上述命令中,<remote-name> 是远程仓库的名称,通常为 origin<remote-branch> 是要删除的远程分支的名称。

例如,如果要删除名为 feature-branch 的远程分支,可以执行以下命令:

git push origin --delete feature-branch

执行以上命令后,远程分支 feature-branch 将会被删除。

请注意,删除远程分支需要相应的权限。如果你没有足够的权限进行删除操作,你可能需要联系仓库的管理员或具有相应权限的用户来执行删除操作。


提问:保存本次临时修改以及还原?
执行以下命令来保存当前的修改:

git stash save "Temporary changes"

如果你有多次临时保存(stash),并且想恢复指定的修改,你可以使用 git stash list 命令查看保存堆栈中的所有保存记录和索引。

执行以下命令:

git stash list

这将显示一个包含保存记录的列表,类似于:

stash@{0}: On branch <branch-name>: Temporary changes
stash@{1}: On branch <branch-name>: Another set of changes
stash@{2}: On branch <branch-name>: Some more changes

每个保存记录都有一个索引,如 stash@{0}stash@{1}stash@{2} 等。你可以使用这些索引来指定要恢复的特定修改。

要恢复指定的修改,可以使用 git stash apply stash@{<stash-index>} 命令,其中 <stash-index> 是你想要应用的保存的索引。例如,如果你想恢复 stash@{1} 的修改,可以执行以下命令:

git stash apply stash@{1}

或者,如果你想将指定的修改应用并从保存堆栈中移除,可以使用 git stash pop stash@{<stash-index>} 命令。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/572337.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

从 Android 恢复已删除文件的 3 种简单方法

如何从 Android 恢复已删除的文件&#xff1f;毫不犹豫&#xff0c;有些人可能会认为从 Google 备份恢复 Android 文件太容易了。但是&#xff0c;如果删除的文件未同步到您的帐户或未备份怎么办&#xff1f;您错误的恢复可能会永久删除您想要的数据。因此&#xff0c;我们发布…

Maven 安装及配置教程(Windows)【安装】

文章目录 一、 下载1. 官网下载2. 其它渠道 二、 安装三、 配置四、 验证五、 本地仓储配置六、 配置镜像七、 配置JDK八、完整配置九、常用命令十、IDEA 中配置 Maven1. 配置当前项目2. 配置新建 / 新打开 项目 软件 / 环境安装及配置目录 一、 下载 1. 官网下载 安装地址&a…

【2024年最新】NodeMCU-ESP8266刷AT固件教程——适用于esp-12E和esp-12F

硬件图片 原理图 0、工具打包下载 工具包 密码:keduo 1、工具及固件下载 固件下载地址&#xff1a; 欢迎 | 安信可科技 (ai-thinker.com) 下载以下固件&#xff1a; 直接下载地址&#xff1a;AT 固件&#xff08;固件号&#xff1a;0781&#xff09; 下载以下工具&#xf…

【前端】vue数组去重的3种方法

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、数组去重说明二、Vue数组去重的3种方法 前言 随着开发语言及人工智能工具的普及&#xff0c;使得越来越多的人会主动学习使用一些开发工具&#xff0c;本文…

react09 hooks(useState)

react-09 hooks&#xff08;useState&#xff09; hooks组件&#xff08;函数组件动态化&#xff09; 其本质就是函数组件&#xff0c;引用一些hooks方法&#xff0c;用来在函数组件中进行例如状态管理&#xff0c;模拟类组件的生命周期等&#xff0c;只能运用到函数组件中 ho…

基于MaxKB搭建一个知识库问答系统

什么是MaxKB MaxKB 是一款基于 LLM 大语言模型的知识库问答系统。MaxKB Max Knowledge Base&#xff0c;旨在成为企业的最强大脑。 开箱即用&#xff1a;支持直接上传文档、自动爬取在线文档&#xff0c;支持文本自动拆分、向量化&#xff0c;智能问答交互体验好&#xff1b…

DHCP Relay配置与抓包

前言&#xff1a;DHCP请求报文是以广播包方式发送的&#xff0c;当DHCP服务器与DHCP客户端不在同一网段时&#xff0c;就需要在三层网关设备配置DHCP中继功能 。 为能更好理解DHCP Relay功能&#xff0c;建议先看看DHCP Server的内容 https://blog.csdn.net/weixin_58574637…

【Java框架】SpringMVC(三)——异常处理,拦截器,文件上传,SSM整合

目录 异常处理解释局部异常处理全局异常 拦截器拦截器介绍作用:拦截器和过滤器之间的区别拦截器执行流程代码实现补充 文件上传依赖配置MultipartResolver编写文件上传表单页APIMultipartFileFile.separator必须对上传文件进行重命名代码示例 SpringMVC文件上传流程多文件上传 …

你知道吗?PCBA产品上市前还需要进行老化测试?

在PCBA加工过程中&#xff0c;电子工程师可能发现明明PCBA板出货时各项功能指标正常&#xff0c;但使用一段时间&#xff0c;就莫名其妙出现各种不良问题&#xff0c;最后返场维修&#xff0c;那么这是为什么&#xff1f; 首先&#xff0c;这些原因&#xff0c;十有八九可能是P…

谷歌开发者账号关联被封?解封申诉指南来了!

相信大部分在谷歌上架应用的开发者&#xff0c;已经被谷歌封号封麻了。且不少开发者普遍认为&#xff0c;一旦开发者账号被封禁&#xff0c;想要成功申诉回来的难度极大。 特别是那些因为涉及“高风险”滥用模式行为关联被封的账号&#xff0c;更是不可能申诉成功。但事实上&am…

再谈C语言——理解指针(五)(完结篇)

数组名的理解 在上⼀个章节我们在使⽤指针访问数组的内容时&#xff0c;有这样的代码&#xff1a; int arr[10] {1,2,3,4,5,6,7,8,9,10}; int *p &arr[0]; 这⾥我们使⽤ &arr[0] 的⽅式拿到了数组第⼀个元素的地址&#xff0c;但是其实数组名本来就是地址&#xf…

【产品经理修炼之道】- 将用户需求转化为研发需求

每当接到一个用户需求&#xff0c;产品经理头疼的事情之一&#xff0c;可能就是如何把用户需求转化成研发需求。怎么理解二者的区别&#xff0c;并成功地将需求转化呢&#xff1f;这篇文章里&#xff0c;作者做了分享与总结&#xff0c;一起来看一下。 产品经理与研发人员的博弈…

【图像分割】光流生成标签(matlab)

文章目录 1. 框架2. opticalFlow_label3. 光流 1. 框架 2. opticalFlow_label close all; clear; clc; % 使用光流进行标签的生成 %% 视频帧的读取 npy_data readNPY(train.npy);%% 提取标签的坐标 first_label squeeze(npy_data(2,1,:,:)); h fspecial("gaussian&quo…

C语言自定义类型【结构体】

结构体的概念 结构是一些值的集合&#xff0c;这些值被称为成员变量。结构的每个成员可以是不同类型的变量。 1.结构体的声明 1.1普通声明 我们假设要创建一本书的类型&#xff0c;那我们需要书名&#xff0c;作者&#xff0c;价格&#xff0c;书的ID 代码如下&#xff1a;…

第十五届蓝桥杯省赛第二场C/C++B组A题【进制】题解(AC)

解题思路 按照题意进行模拟&#xff0c;计算 x x x 的 b b b 进制过程中&#xff0c;若出现余数大于 9 9 9&#xff0c;则说明 x x x 的 b b b 进制一定要用字母进行表示。 #include <iostream> #include <cstring> #include <algorithm> #include &l…

vue3推荐算法

Vue 3 推荐算法主要指的是在 Vue 3 框架中实现的或者适用于 Vue 3 的算法库或组件库。Vue 3 由于其优秀的设计和性能&#xff0c;被广泛应用于构建各种类型的应用程序&#xff0c;包括需要复杂算法支持的项目。以下是一些在 Vue 3 中可能会用到的推荐算法资源&#xff1a; Vue-…

啊? 又要洗数据啦!! 还是两个key决定一个表! 二维Map学习,基于guava的HashBasedTable

一个洗数据的需求&#xff0c;表设计的外建不能判断某一个数据源&#xff0c;还要根据tyoe来进行判断才可以。 那此时呆逼的查发能实现但不够优雅&#xff0c;于是乎想到了二维数组&#xff0c;查了下资料有相关的实现给大家分享下&#xff01;&#xff01; 背景 表设计如下&a…

美易官方:AI热潮“熄火”了?Meta Q1财报较差

近期&#xff0c;随着Meta&#xff08;前Facebook&#xff09;发布了其2023年第一季度的财报&#xff0c;一场科技股的震荡在美股市场上演。曾经风光无限的AI热潮似乎出现了“熄火”的迹象&#xff0c;引发了市场的广泛关注和讨论。 Cresset Wealth Advisors首席投资官Jack Abl…

libVLC 专栏介绍

本专栏主要界面libVLC的使用&#xff0c;详细介绍了相关用法&#xff0c;使用Qt作为显示界面&#xff0c;不仅可以了解Qt的使用&#xff0c;QSS的美化&#xff0c;更能够熟悉libVLC核心接口的使用&#xff0c;最后打造一款属于自己的精美播放器。 每一节都有单独的源码供查看。…

CSS @media 媒体查询全解:打造极致跨平台页面的动态户体体验

随着互联网设备的多样化和用户浏览习惯的变化&#xff0c;现代网页设计越来越注重提供跨平台、跨设备的无缝用户体验。CSS媒体查询media在此背景下扮演着至关重要的角色&#xff0c;它赋予网页设计者精准控制网页样式的能力&#xff0c;使之能随设备环境变化而动态调整&#xf…
最新文章