Git 基本命令汇总

这篇具有很好参考价值的文章主要介绍了Git 基本命令汇总。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


一、背景

在开发过程中,我们基本都是使用Git进行代码管理,Git命令是必须要会的,下面就把Git常用命令总结下来。


二、Git命令

1、init & clone

# 在当前目录新建一个仓库
git init

# 在一个目录下新建本地仓库
git init [project-name]

# 克隆一个远程仓库
git clone [url]

2、config

# 查看配置
git config [--local][--global][--system] --list

# 查看当前git环境详细配置
git config -l 

# 查看系统config
git config --system --list

# 查看当前用户配置
git config --global --list

# 查看当前仓库配置信息
git config --local --list

# 查看全局账号
git config --global user.name

# 查看全局邮箱
git config --global user.email

# 修改配置
git config [--local][--global][--system] section.key value

# 设置当前项目的用户名
git config --local user.name [用户名]

# 配置当前用户的编码项,可以解决中文编码问题
git config --global core.quotepath false 

# 配置当前项目不忽略文件大小写,git默认忽略文件名的大小写,这点值得注意
git config --local core.ignorecase false 

3、remote

# 查看远程仓库地址命令
git remote -v

# 删除远程仓库地址
git remote remove origin

# 添加远程仓库地址 http://.....
git remote add origin [url] 

# 查看remote 地址,远程分支,还有本地分支与之相对应关系等信息
git remote show origin

# 删除那些远程仓库已经不存在的分支
git remote prune origin

# 建好 develop 分支的跟踪中央仓库分支
git checkout -b develop origin/develop

4、branch

# 创建分支
git branch [branch-name] 

# 查看当前分支
git branch 

# 查看本地和远程的所有分支
git branch -a 

# 查看远程所有分支
git branch -r 

# 查看本地分支与远程分支的映射关系
git branch -vv

# 切换分支
git checkout [branch-name] 

创建dev分支,然后切换到dev分支 
# git checkout命令加上 -b 参数表示创建并切换,相当于以上两条命令
git checkout -b [branch-name] 

# 删除一个分支
git branch -d [branch-name] 

# 强制删除一个没有合并的分支
git branch -D [branch-name] 

# 删除远程分支dev
git push origin :[branch-name] 

# 更新分支列表信息
# -p 表示删除不存在的远程跟踪分支
git fetch -p

# 清理无效的远程追踪分支
git remote prune origin

5、add

# 从工作区添加指定文件到暂存区
git add [file-name1] [file-name2] ... 

# 将工作区的被修改的文件和新增的文件提交到暂存区,不包括被删除的文件
git add . 

# u指update,将工作区的被修改的文件和被删除的文件提交到暂存区,不包括新增的文件
git add -u . 

# A指all,将工作区被修改、被删除、新增的文件都提交到暂存区
git add -A . 

6、commit

# 将暂存区所有文件添加到本地仓库
git commit -m "[massage]" 

# 将暂存区指定文件添加到本地仓库
git commit [file-name-1] [file-name-2] -m "[massage]" 

# 将工作区的内容直接加入本地仓库
git commit -am "[massage]" 

# 快速将当前文件修改合并到最新的commit,不会产生新的commit。
# 在提交commit后发现还有部分文件修改忘记提交了可以是用该命令
git commit --amend 

-m 是指直接在后面写上版本的注释,不加 -m 的话会用一个vim打开文件让你写入massage,有未追踪的文件将会失败,需要 add 加入暂存区。


7、pull & push

# 从远程仓库拉取代码到工作空间
git pull 

# 从远程仓库拉取指定分支代码
git pull origin [branch-name]

# 将文件添加到远程仓库
git push 

# 将代码推送到指定的远程分支
git push origin [branch-name]

# 强制将代码推送到指定的远程分支
git push --force origin [分支名称]

# 强制提交,当我们本地reset到旧的版本时,然后普通push会被拦截,因为此是本地HEAD指向比远程库还要旧
git push -f 

# 推送当前本地分支到指定远程分支
git push origin [branch-name] 

# 退到/进到 指定的commit【sha码】,然后强制推送到远程
git reset --hard [commit_id]
git push origin HEAD --force

# 删除远程分支
git push origin --delete [分支名称]

8、log & reflog

# 查看分支历史
git log

# 简化查看分之历史
# 没有pretty的是,只有commit id 前7位,加pretty的是全部的id
git log --oneline
git log --pretty=oneline

# 图形式展示分支历史
git log --graph

# 简化版图形式展示分支历史
git log --graph --oneline

# 简化版图形式展示分支历史附带展示已经修改的文件
git log --graph --oneline --name-only

# 查看分支合并情况
git log --graph --pretty=oneline --abbrev-commit 

# 使用git reset --hard命令改变了HEAD指向某个版本后后,还可以用git log --reflog查看所有版本。
git log --reflog

# 查看最新3条commit日志数据
git log -3 

# 查看某个文件的修改记录
git log -p [filename]

# 显示操作本地版本库的命令,包括commit和reset等,
# 在回退版本以后又后悔找不到commit id了可以使用此命令查看历史
git reflog

9、diff

文件对比

在我们不指定专门的文件夹的时候,git diff 默认比较的是整个项目 git 目录。

# 工作区与暂存区比较
git diff

# 工作区与 HEAD ( 当前工作分支) 比较
git diff HEAD

# 工作区比较上次的提交
git diff HEAD^

# 工作区比较上两次提交,于是有了,git diff HEAD~n 是比较上n次提交与现在工作区间的关系
git diff HEAD~2

# 查看add的文件修改内容
git diff HEAD [filename]

# 工作区与暂存区文件比较(查看未add的文件修改内容)
git diff [filename]

# 工作区比较特定提交
git diff [commitId]

# 工作区与特定提交文件进行比较
git diff [commitId] [filepath] 

# 暂存区与 HEAD 比较
git diff --cached

# 暂存区比较 HEAD 的某个文件差异
git diff --cached _posts/blog/2019-02-16-git.md

# 当前分支与 branchName 分支进行比较
git diff [branchName]

# 当前分支的文件与branchName 分支的文件进行比较
git diff [branchName] [filepath]

# 查看某两个版本之间的差异
git diff ffd98b291e0caa6c33575c1ef465eae661ce40c9 b8e7b00c02b95b320f14b625663fdecf2d63e74c

# 查看某两个版本的某个文件之间的差异
git diff ffd98b291e0caa6c33575c1ef465eae661ce40c9:filename b8e7b00c02b95b320f14b625663fdecf2d63e74c:filename

10、reset

当对整个版本进行操作

# --soft 其中可选参数soft表示单纯的切换HEAD指向的commit-id
# --mixed 默认值mixed参数表示先执行上面一步,然后再将commit-id里面的内容更新到暂存区
# --hard hard表示先执行上面两步,然后再将暂存区内容同步到工作区
git reset --{soft|(mixed)|hard} HEAD

# 用上两个版本里的所有文件撤回到暂工作区
git reset --hard HEAD^^ 

# 用指定版本的所有文件撤回到工作区
git reset --hard [commit id] 

当对当个文件进行操作

# 对单个文件操作时候只能用mixed参数,而且还是可省略
# 对单个文件操作时候HEAD指向不会变
# 将commit中指定的文件同步到暂存区中
git reset HEAD [file-name]

# 将指定commit-id中的文件替换掉暂存区的文件
git reset [commit-id] [file-name] 



11、merge

# 用于合并指定分支到当前分支
git merge [branch-name] 

# 退出当前分支合并,当合并后冲突很多,要撤回合并分支就可以用这个命令
git merge --quit

# 准备合并dev分支,请注意--no-ff参数,表示禁用Fast forward 
# 合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并
# 而fast forward合并就看不出来曾经做过合并。
git merge --no-ff -m [massage] [branch-name]

12、checkout

# 切换分支
git checkout [branch] 

# 最好加--,没有的话就把它当作切换分支看待,切换到另一个分支了,如果没有这个分支也会把它当作文件执行。
# 用暂存区的文件覆盖掉工作区的文件
# 如果暂存区没有可更新的就会用commit的文件更新工作区的文件
git checkout -- [file-name]

# 创建并切换分支
git checkout -b [new-branch-name] 

# 从远程仓库里拉取一条本地不存在的分支
git checkout -b [本地分支名] origin/[远程分支名]
# 如果出现提示
# fatal: Cannot update paths and switch to branch 'dev2' at the same time.
# Did you intend to checkout 'origin/dev2' which can not be resolved as commit?
# 表示拉取不成功。我们需要先执行,然后在执行上面命令
git fetch

git checkout -b [本地分支名] origin/[远程分支名]

13、stash

# 隐藏当前工作的修改
# 如果不隐藏自己修改的半成品代码,就会发生切换到别的分支后,将然后自己的半成品代码带入其他分支,这样就发生很多不必要的麻烦。
git stash 

# 执行存储时,添加备注,方便查找,只有git stash 也要可以的,但查找时不方便识别。
git stash save message 

# 查看隐藏的工作信息列表
git stash list 

# 删除隐藏的工作信息
git stash drop 

# 恢复隐藏的工作信息,同时删除隐藏的工作信息
git stash pop 

# 恢复指定的隐藏工作信息,但是不会删除隐藏的工作信息
git stash apply [stash@{0}] 

14、cherry-pick

适用于在其他分支上修复了bug,但是这个bug在当前分支上依然存在,所以可以复制这个commit的过程,不必重写代码。

# 这个是复制一次commit提交,然后在当前分支上重新提交一遍;也就是将指定commit的合并到当前分支;
git cherry-pick [commit-id] 

# 将某个分支的多次commit合并到当前分支
git cherry-pick [commitHashA] [commitHashA]

# 将某个分支的commitA到commitB的所有commit合并到当前分支
git cherry-pick [commitHashA]..[commitHashA]

# 使用该命令,提交 A 将不会包含在 Cherry pick 中。如果要包含提交 A,可以使用下面的语法。
git cherry-pick [commitHashA]^..[commitHashA]

15、rebase

合并多次 commit 提交。文章来源地址https://www.toymoban.com/news/detail-851258.html

# 合并多次提交
# 非关键性的提交太多会让版本历史很难看、冗余,所以合并多次提交也是挺有必要的。
# 同样是使用以上的变基命令,不同的是变基命令打开的文本编辑器里的内容的修改。
# 将pick修改为squash,可以是多行修改,然后保存退出。
# 这个操作会将标记为squash的所有提交,都合并到最近的一个祖先提交上。
# 注意:不能对的第一行commit进行修改,至少保证第一行是接受合并的祖先提交。
# -i参数表示进入交互模式。
git rebase -i <commit range>

# 合并前两个历史提交,
# 会弹出vim修改信息,修改第二行的pick为s,或者为squash,squash为合并的意识,
# 然后保存退出编辑,会打开第二个vim编辑,合并并修改commit内容,
# 保存退出会产生一个新的commit id,这样就合并了两个commit
git rebase -i HEAD~2

16、show

# 显示此次提交的修改
git show [commitid]

到了这里,关于Git 基本命令汇总的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Git回滚文件常用命令汇总

    1. 修改完,还未执行git add 缓存区没有任何文件时,使用 将暂存区的文件覆盖工作区 执行完 git add . 之后,再执行该命令是无效的,git checkout .和git add .是一对反义词 git checkout(覆盖) 1、只放弃工作区的改动,index 保持不变,其实就是从当前 index 恢复 工作区: 放弃工作区中全

    2024年02月16日
    浏览(36)
  • Git和Github的基本用法

    目录 背景 下载安装 安装 git for windows 安装 tortoise git 使用 Github 创建项目 注册账号 创建项目 下载项目到本地 Git 操作的三板斧 放入代码 三板斧第一招: git add 三板斧第二招: git commit 三板斧第三招: git push 小结 🎈个人主页:库库的里昂  🎐CSDN新晋作者  🎉欢迎 👍点赞✍评

    2024年02月10日
    浏览(35)
  • Git命令学习及Git 与 GitHub 的绑定实现学习笔记

    目录 一.Git常用命令及创建本地仓库步骤  二.利用 SSH 完成 Git 与 GitHub 的绑定 三.本地没有git仓库,拉取github仓库代码到本地并push代码到远程仓库步骤 四.本地有仓库,拉取github仓库代码到本地并push代码到远程仓库步骤 一.Git常用命令及创建本地仓库步骤 1.首先使用cd命令进入

    2024年02月04日
    浏览(48)
  • 常用的git diff命令用法汇总和示例

    Git的 diff 命令是一种强大的工具,用于比较Git仓库中文件的更改。以下是一些常用的 git diff 命令用法和示例: 1. 查看工作目录和暂存区的差异 这个命令显示自上次 git add 以来,在工作目录中对文件所做的未暂存的更改。 2. 查看暂存区和最后一次提交的差异 或者 这些命令显

    2024年01月19日
    浏览(34)
  • Git的配置、本地绑定Github及基本使用

    Git 是一个开源的分布式版本控制软件,用以有效、高速的处理从很小到非常大的项目版本管理,GitHub是一个基于Git的远程文件托管平台,本文介绍如何配置Git以及绑定GitHub。 提示:以下是本篇文章正文内容,下面案例可供参考 1.1下载Git 点击此处在官网下载Git 1.2按照以下步骤

    2024年01月17日
    浏览(42)
  • Git学堂:30个基本Git命令

    当涉及到软件开发时,版本控制是必不可少的。它允许你跟踪你的代码变化,恢复到以前的阶段,并与你的团队在一个项目上进行合作。最流行的版本控制系统之一是Git。无论你是一个刚刚起步的初学者,还是一个希望简化工作流程的经验丰富的开发者,了解Git命令无疑是一

    2024年04月23日
    浏览(45)
  • Git 怎么使用?管理项目?冲突?命令汇总(git rebase、git reverse、git reset、git tag)——保姆及教程(持续更新)

    写在前面: 整理:CS_GUIDER,作者:阮一峰,原文链接:https://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html 文章一般会优先在个人博客中更新,欢迎少爷们围观我的个人博客: https://wl2o2o.github.io/(点击即可访问) 推荐一个快速练习 Git 的宝藏网站——动图演示 Git 的命令逻辑。

    2024年02月03日
    浏览(48)
  • github使用笔记及git协作常用命令

    1.Github有一个主库 ,每个人自己也有一个库,称为分支。 2.Github的协作流程 :先从主库fork出自己的分支, 然后进行代码的修改等操作, 操作完之后从本地库上推到自己的服务器分支,然后 服务器分支Pull Request到 主库。 3.本地仓库由git维护的三棵“树\\\"组成 :第1个是工作目

    2024年02月14日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包