Git命令使用教程

2023-11-15

git文件提交大致流程:

本地文件( git add 文件名) → 暂存区(git commit -m 提交信息)→ 本地仓库(git push 远程仓库地址(复制的) 分支名称(要推送的分支名称)) → 远程仓库(github)

git操作详细流程:

1、先配置提交人姓名和邮箱信息

(1)设置用户名和邮箱

git config --global user.name 姓名

git config --global user.email 邮箱

(2)修改用户名和邮箱

git config --global --replace-all user.name 姓名

git config --global --replace-all user.email 邮箱

(3)git config --list 查询信息是否配置好

tip:此操作,环境配置的时候操作一次即可

2、项目初始化 — 推送远程仓库步骤

(1)初始化(在指定的目标文件夹下 — 项目存放的地方)

  • 步骤:进入项目文件夹,然后空白处鼠标右键,点击 Git Bash Here 
  • 指令:git init
  • 作用:创建git仓库(.git文件夹)

tip:此操作,每个新项目开始时执行一次即可

(2)git add 文件名(添加到暂存区)

  • 步骤:进入项目文件夹,然后空白处鼠标右键,点击 Git Bash Here 
  • 指令:git add 文件名 — 提交指定的文件
  • 指令:git add . — 提交所有的修改的文件(常用)
  • 作用:把修改过的文件添加到暂存区

tip:git status 查看文件状态(文件是否提交到暂存区 红色表示没有 绿色表示已提交)

(3)git commit -m 提交信息

  • 步骤:进入项目文件夹,然后空白处鼠标右键,点击 Git Bash Here 
  • 指令:git commit -m 提交信息
  • 作用:把文件提交到git仓库( 提交信息可以反应这个文件内容的,注意,这个会提交暂存区的所有文件,如果有的文件不需要提交,先删除)

tip:git log 查看提交到git仓库的记录(有id,恢复版本的时候需要)

        git reflog 更全更详细可以查看所有分支的所有操作记录信息,包括已经被删除的 commit 记录和 reset 的操作

(4)从本地仓库提交到远程仓库(github)

注意:团队开发需要共享数据是,设置远程仓库才有意义,如果是一个人做项目,那么就没必要设置远程仓库(公共仓库)

① 本地仓库创建 在本地文件夹里 git init 创建 —— 第2(1)步

② 远程仓库在github上创建

③ 复制 远程仓库地址

④ 将本地仓库推送到远程仓库

  • 步骤:进入项目文件夹,然后空白处鼠标右键,点击 Git Bash Here 
  • 指令:git push 远程仓库地址(复制的) 分支名称(要推送的分支名称)
  • 作用:团队项目,数据共享

tip:① master一般是主分支,我们开发都是在其他分支,最后会合并到主分支,所有提交的时候要注意分支切换;

② 如果你的分支切换好了,直接git push 仓库地址即可,

③ 如果你在master分支,把文件提交到其他分支,那就需要跟着写分支名称,git push 远程仓库地址(复制的) 分支名称(要推送的分支名称)

3、远程仓库起别名

(1)修改远程仓库名称

  • 指令:git remote add origin(别名,自定义,可以取其他的) 远程仓库地址(复制的)
  • 作用:推送到远程仓库的时候,就不需要复制地址了()

tip:origin我们取的名字,等同于远程仓库的地址

(2)远程仓库别名 之 git push

① git push origin

  • 指令:git push origin 分支名称
  • 作用:推送到远程仓库的时候,就不需要复制地址了(只需要 git push origin 分支名称)

② git push -u 

  • 指令:git push -u origin 分支名称
  • 作用:推送到远程仓库的时候,就不需要复制地址了(只需要 git push)

(3)git push origin  和 git push -u  区别

  • git push origin:将当前分支推送到origin主机的对应分支;如果当前分支只有一个追踪分支,那么主机名都可以省略。
  • git push 如果当前分支与多个主机存在追踪关系,那么这个时候-u选项会指定一个默认主机,这样后面就可以不加任何参数使用git push。
  • git push -u origin master 上面命令将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push了。

4、例子

程序B 克隆A的进行修改然推送回去

①克隆程序员A的远程仓库

git clone 仓库地址(复制)

②将修改好的文件推送到程序员A的远程仓库

首先把修改好的文件 提交到暂存区 然后在提交到git仓库中

然后在推送到程序员A的远程仓库(必须程序员A在github上把程序员B设置成团队开发成员,然后程序员A把程序员B的账户名添加上去,然后程序员A把邀请链接发送给程序B,程序员B登录github把邀请链接复制在地址栏,点击同意,然后就可以把修改好的推送到程序员A的远程仓库)

程序员A将最新的仓库文件 拉到本地

git pull 远程仓库地址 分支名称

注意:git clone 是克隆别人的文件 自己没有本地仓库也没事

git pull 是拉取 建立在自己的仓库之上

如果本地仓库的文件版本没有远程仓库的版本新,是推送不上去的,

5、分支介绍

主分支:第一次向git仓库提交是自动产生的 master

开发分支:基于主分支创建 login

功能分支:基于开发分支创建 ,一般都是在功能分支上进行修改

6、分支的基本操作:

① 查看分支 git branch (前面哪有五角星 就说明咋哪个分支上 也可以看后面的括号)

② 创建分支(在哪个分支操作,就是在哪个分支上创建分支)

git branch 分支名称

③ 切换分支(切换分支之前,当前分支上的文件一定要提交到git仓库中,否则没提交的文件会出现在切换后的分支里)

git checkout 分支名称

④ 合并分支(要合并个哪个分支就先切换到哪个分支(例如:login开发分支合并到master主分支,我们就先切换到master主分支),合并后,原来的分支(login)依然存在)

git merge 要合并的分支名称

⑤ 删除分支 (不能再本分支删除本分支,必须先切换到其他分支)

git branch -d 分支名称 (分支被合并后才允许被删除,这是Git对分支的保护,怕git仓库的文件丢失)

git branch -D 强制删除(没有合并就删除的操作)

⑥ 暂时保存更改 (因为切换分支之前,必须把当前分支工作全部提交,但是如果还没完成当前分支工作,又不想提交,但是又需要切换到其他分支,就可以用下面方法)

先保存起来,分支临时切换 临时转向其他工作

临时存储 git stash

恢复 git stash pop (在哪个分支恢复,就会在哪个分支,所以恢复钱一定要清楚再哪个分支)

7、其他操作:

(1)恢复记录 用暂存区文件 覆盖 需要修改的本地目录的文件

git checkout 文件名 暂存区覆盖目录文件(目录去文件修改后,恢复成原来的版本)

(2)删除暂存区的文件

git rm --cached 要删除的文件名

(3)用git仓库文件 覆盖 暂存区和工作目录中的文件 (相当于恢复原来的文件版本)

git rest --hard commitID (commitID id名可以直接复制)

注意:如果用第一次提交到git仓库的文件进行覆盖和恢复,那后面提交到git仓库的文件就会被删除,暂存区和本地目录下如果是后面建的文件会被删除,修改的也会被恢复,

8、ssh免登录

公钥:保存在github的账户中

私钥:保存在客户端

原理:当客户端进行push的时候,会携带私钥,远程服务器就会去比对是否匹配,如果匹配,那么push成功

① 生成秘钥 利用ssh-keygen 生成一对秘钥 生成的密钥在C:\\Users\当前用户名称\.ssh 文件夹里面

② 在githu中添加公钥

在电脑c盘里找到id_rsa.pub文件,复制里面的内容,这个就是公钥,然后到github上,点击头像 → 选择settings(设置选项) → 右侧选择SSH and GPG keys →

在key下面的文本框里面粘贴复制的内容(公钥) → 最后点击Add SSH key(添加)完成

③ 本地利用push命令进行提交即可,git会默认帮我们携带私钥,在提交的过程中,它会自动去匹配服务器上的公钥和客户端的私钥,如果匹配成功,那么就能提交,如果失败,不能提交(总结:本地仓库提交到远程仓库的时候,就不用在输入登录名和密码了,它会自动匹配)

9、Git忽略清单

生成忽略名单:直接在代码编辑器里面新建文件,文件名就是: .gitignore

作用:将不需要被git管理的文件名字添加到此文件中,在执行git命令的时候,git就会忽略这些文件,不会提交到暂存区,也就不会提交到仓库。

10、github仓库的详细说明

可以在github直接设置,设置详细说明,可以方便知道这个仓库是放什么的。

11、git命令大全

1. git config --global user.name //配置姓名

2. git config --global user.email //配置邮箱

3. git config --list //查看配置信息

4. git init //初始化本地仓库

5. git status //查看文件状态

6. git add 文件名 //添加某个文件到暂存区,如果写 . 代表当前文件夹下所有的文件、

7. git commit -m 日志说明 //提交到本地仓库

8. git log //查看提交记录

9. git reflog 更全更详细

10. git checkout 文件名 //撤销,让暂存区文件覆盖工作区间文件

11. git rm --cached 文件名 //在暂存区移除相应文件

12. git reset --hard 提交ID //恢复到指定版本

13. git branch //查看分支

14. git branch develop //创建分支

15. git checkout 分支名 //切换分支

16. git merge //合并分支

17. git branch -d 分支名称 //删除分支

18. git clone 地址 //克隆远程仓库

19. git push 地址 分支名 //往服务器推送

20. git pull 地址 //将服务器代码拉取到本地

21. git remote add 名称 地址 //给地址取别名

22. git push -u origin master //-u的参数让git记录信息,下次只需要 git push 就能进行提交

23. ssh-keygen //生成一对密钥

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Git命令使用教程 的相关文章

  • Visual Studio 2010 中的源代码控制?

    在对 SO Google 和 MSDN 论坛进行了一些搜索之后 我感到很沮丧 因为对于一个看似显而易见的问题 甚至可能是一个愚蠢的问题 信息太少 我需要在 Visual Studio 2010 Professional 中使用源代码管理 我
  • 如何使用git查看指定版本的Webkit?

    谢谢 从链接http trac webkit org wiki UsingGitWithWebKit http trac webkit org wiki UsingGitWithWebKit 使用 git 检查 Webkit 有以下 3 个
  • git:键不包含节

    我使用的是 Git 版本 1 8 4 2 When I press tab to auto complete any command it prints the error below and it also completes the c
  • 创建 Git 标签时自动运行 Git hook

    是否有一个 Git 钩子可以在添加新的 Git 标签时执行 因为我想自动将新的 Git 标签名称写入文本文件 您知道如何执行此操作吗 虽然目前无法使用挂钩 但您始终可以创建一个简单的脚本 mytag sh bin sh z 1 git ta
  • 如何在 Git 中重命名带注释的标签

    如何在 Git 中重命名现有的带注释的标签 我在存储库上有近一百个代表版本号的标签 每个标签都注释有有关该版本更改内容的有用描述 我想更改用于这些标签的命名样式 记录标签消息 删除标签 然后使用旧消息和新名称重新创建它 这对于手动为近一百个
  • 将远程存储库导入为具有完整历史记录的子目录

    我想将远程存储库作为具有完整历史记录的子目录进行合并和解耦 有多种方法和问题可以实现这一点 我的第一次尝试是使用subtree但它似乎没有重写文件的历史记录 所以我无法查看合并存储库的历史记录 接下来的尝试是手动合并它 就像 Seth Ro
  • git jenkins 中未找到存储库

    我正在使用 jenkins 2 64 并安装了最新的插件 我试图在 jenkins 中设置 git 存储库并给出凭据 但给出错误无法连接存储库 状态代码为 128 Cloning repository https github com so
  • 如何在 git 中使用我的更改进行合并?

    在 git 中合并时如何强制 我的更改 有人将所有 bin 目录放入 git 中 现在我遇到了可怕的合并冲突 现在它说 当你解决了这个问题后 运行 git rebase 继续 如果你 宁愿跳过这个补丁 而是运行 git rebase ski
  • Gitflow错误无法初始化

    我已经将 gitflow 安装在我的 github 项目所在的目录中 但是 当我尝试使用命令 启动时git flow init 我收到以下错误消息 git flow init C cygwin64 usr local bin gitflow
  • 如何从“分离头状态”恢复提交?

    我检查了另一个有更新的分支 然后做了一些更改 切换回主 git 现在更改消失了 我可以把它们找回来吗 终端基本上是 git commit detached HEAD 7c09e17 Fixed some stuff files change
  • Github 操作 - 错误:进程已完成,退出代码为 1

    我正在尝试设置 github 操作来部署我的应用程序 My bash 启动部署过程的脚本如下所示 bin sh set e vendor bin phpunit git push true git checkout production g
  • 如何在 GitHub 中创建嵌套存储库?

    我可以通过创建一个存储库https github com https github com say repo 并有 https github com username repo git 如何创建另一个存储库 例如sub repo 置于rep
  • 如何运行“git status”并获取文件名

    如何运行 git status 并只获取文件名而不是长相对路径 的输出git status porcelain旨在易于在脚本中解析 输出完整路径而不是相对路径 无论当前目录位于树中的位置 每行输出由git status porcelain有
  • 为了使“我的更改”正常工作,Github 的正确 VCS 用户名设置是什么?

    我有一个适合个人的 TeamCity 持续构建流程设置GitHub项目 https github com benpowell HelloTxt NET效果很好 但是 在 TeamCity 中 我想在 我的更改 下查看提交列表 http te
  • .gitignore 在提交、推送或到达服务器时起作用吗?

    说我有一个 gitignore忽略所有 class files 当 时这些文件是否远离远程源 我在本地提交 添加我的文件 我的吗git寻找一个 gitignore当使用添加 提交时 并根据它所说的内容 从提交中删除内容 我推动我的承诺 做g
  • 如何在不下载文件对象的情况下进行 git 克隆

    是否可以下载所有提交但不能下载文件本身 我想运行 bisect 但从构建服务器下载版本而不是自己编译 当你跑步时git bisect你可以提供 no checkout如果您不想为每次迭代签出新的工作树 请作为参数 同样适用于git clon
  • Visual Studio 2022 Git 推送标签

    有谁知道如何在 Visual Studio 2022 中推送标签 自从我切换到多存储库模式后 我在任何地方都找不到它 解决方法是通过命令行推送标签 事实上 标签有点隐藏 你应该去团队资源管理器 gt Git 存储库 gt 在你的分支下 gt
  • 如何从不同分支上的本地提交复制文件?

    我提交了一个文件master分支但未推送remote 现在我正在努力feature分支 我希望将该文件复制到feature分支来自master分支 我怎样才能做到这一点 您可以从另一个分支检出特定文件 git checkout master
  • git fatal:无法读取对象 xxx:参数无效

    如果我从远程获取数据 我会收到以下错误 git pull remote Counting objects 85 done remote Compressing objects 100 37 37 done remote Total 85 d
  • .gitignore:如何忽略嵌套目录?

    我有以下目录结构 test a test b c test a b Ouput test c d e Output test f Output 我想忽略 test 下的所有 Output 目录 我试过test Output 但没有成功 我究

随机推荐

  • 阿里云服务器搭建FRP实现内网穿透-转发

    前言 1 什么是frp frp是一个专注于内网穿透的高性能的反向代理应用 支持TCP UDP HTTP HTTPS等多种协议 且支持P2P通信 可以将内网服务以安全 便捷的方式通过具有公网IP节点的中专暴露到公网 2 演示环境 一 frp软
  • 火狐插件之(1) 用ScribeFire写csdn博客(很棒)

    ScribeFire 是火狐插件 简单快速的写博客 支持CSDN博客 关键是以下地址 http blog csdn net whyacinth services metablogapi aspx 将红色部分换成你的账号 自动检测回失败 手动
  • 内存卡永久删除的文件如何恢复?

    内存卡是和机械硬盘 U盘一个性质的数据存储工具 可以说是 同行 而作用更是不必多说 就是存储文件数据 谈谈今天的主题 万一真出现了这种情况 那存储我们电脑数据的内存卡永久删除的文件怎么恢复 内存卡永久删除的文件怎么恢复 内存卡永久删除的文件
  • gitee中git不能使用http协议提交项目

    git使用https协议提交项目的时候出现以下错误 error RPC failed curl 56 GnuTLS recv error 110 The TLS connection was non properly terminated
  • mixins详解

    实现一个日志功能 组件在挂载前打印 Component will mount 组件挂载后打印 Component did mount 不能忍受的写法 var AComponent React createClass componentWil
  • README_Albumentations

    一 文档 GitHub https github com albumentations team albumentations 官方文档 Albumentations Documentation 二 Installation pip ins
  • Amazon AWS —— 免费的午餐不好吃

    转自acgcss 众技术宅所周知 Amazon AWS 之前提供了 新用户凭有效信用卡免费试用一年 的活动 至今没有给出截止日期 虽说免费的午餐很诱人 而且由于信用卡的门槛 也避免了一部分的滥用 但是要安心吃好这顿饭 没有第一个吃螃蟹的人提
  • Python简要复习

    Python程序设计复习 Python基础知识 python的特点 兼具编译型和解释型特性 兼顾过程式 函数式和面向对象编程范式的通用编程语言 解释型语言无需像编译型需要一次性的编译成机器码 然后运行 而是由名叫解释器的程序动态的将源代码逐
  • 快手登录不上去 显示服务器繁忙,快手登录失败怎么回事

    大家好 我是时间财富网智能客服时间君 上述问题将由我为大家进行解答 快手登录失败的原因 1 可能是登录环境不太安全 2 可能是新手机的原因 3 可能是长期未登录或者是异地登录 4 可能是账号存在被盗风险或者已经被其他人登录了 建议修改密码
  • JAVA注解实现@WebServlet(一)

    JAVA注解实现 WebServlet 提示 需要些反射和文件操作 文章目录 JAVA注解实现 WebServlet 前言 一 创建注解RequestMapping 二 创建一个继承HttpServlet的类 三 创建过滤器 总结 前言 在
  • mysql invalid uuid_我为什么不建议开发中使用UUID作为MySQL的主键

    我是少侠露飞 学习塑造人生 技术改变世界 引言 我在之前一篇博客专门介绍了MySQL聚簇索引和非聚簇索引 附传送门 享学MySQL 系列 MySQL索引的数据结构 索引种类及聚簇索引和非聚簇索引 简单来说 就是我们设计表的时候 基本都会人为
  • 【linux kernel】linux中断管理—软中断

    linux中断管理 软中断 一 简介 软中断是linux预留给系统中对时间要求最为严苛和最重要的中断下半部使用的 并且 驱动中只有一些对时间极其敏感的模块使用了 例如 块设备和网络子系统 linux系统中定义了几种软中断类型 如下所示 in
  • 面试题:连续子数组的最大和与循环列表中的子数组最大和

    一 连续子数组的最大和 LeetCode 53 Maximum Subarray 题意 给定一个整数数组 nums 找到一个具有最大和的连续子数组 子数组最少包含一个元素 返回其最大和 定义dp i 为前i个数中的连续子数组的最大和 状态转
  • Jenkins+SonarQube 代码质量检测详解

    一 SonarQube 概述 1 SonarQube 简介 Sonar Qube是一个开源的代码分析平台 支持Java Python PHP JavaScript CSS等25种以上的语言 可以检测出重复代码 代码漏洞 代码规范和安全性漏洞
  • HTTP基础知识(用一万字帮助你入门)

    HTTP中文意思是超文本传输协议 它可以承载的内容有很多像html web Api css js等等 入门HTTP 一 初识 1 1背景知识 二 协议分析 2 1http的发展历程 2 2状态码 2 3缓存 2 4HTTP 2概述 2 5H
  • 利用Python实现黑客帝国代码雨,打造属于自己的黑客帝国

    导语 看安全类文章的时候 发现文章前面经常会加个代码雨的特效图 感觉拿来用python实现一下当成一个小案例还是不错的 让我们愉快地开始吧 开发工具 Python版本 3 6 4 相关模块 pygame模块 以及一些python自带的模块
  • 计算机打印错误,打印机错误正在打印处理方法,详细教您电脑打印机错误正在打印处理方法...

    打印机 是办公常见的打印设备 平时需要打印表格 订单什么的 但是有的时候打印东西会提示 正在打印打印错误 但是打印机连接完好 驱动也安装正确 这是怎么回事呢 下面 小编就教大家如何去解决打印机出现正在打印处理方法 如今在办公室中电脑和打印机
  • CVE-2021-3156 sudo堆溢出 漏洞分析

    漏洞简介 sudo 是 linux 系统管理指令 是允许系统管理员让普通用户执行一些或者全部的 root 命令的一个工具 它允许授权用户以 root 权限执行命令或者程序 sudo 的 sudoer 插件里面存在一个堆溢出漏洞 攻击者可以利
  • Java异步执行代码块,史上最简单的异步执行!!!

    声明 private static final ExecutorService executor Executors newCachedThreadPool new ThreadFactory int i 0 Override public
  • Git命令使用教程

    git文件提交大致流程 本地文件 git add 文件名 暂存区 git commit m 提交信息 本地仓库 git push 远程仓库地址 复制的 分支名称 要推送的分支名称 远程仓库 github git操作详细流程 1 先配置提交人