Git 基本命令与操作流

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

记录 Git 中的基本命令和创建仓库、提交文件、删除文件等方面的操作


Git 基本命令

git status:查看状态

nothing to commit, working directory clean:所有已跟踪文件在上次提交后未被更改过,或者说当前目录下没有出现任何处于未跟踪状态的新文件。

Untracked files(未跟踪的文件):之前的快照(提交/ commit )中没有这些文件。

Changes not staged for commit:已跟踪文件的内容发生了变化(已修改文件),但还没有放到暂存区。要暂存这次更新,需要运行 git add 命令。

Changes to be committed :暂存区文件。创建后 git add (被追踪)还未提交的文件。

特殊的文件状态:同时属于Changes to be committedChanges not staged for commit 两种状态

$ git add README
$ vi README # 修改文件
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

    new file:   README

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   CONTRIBUTING.md

当将一个文件添加到暂存区(git addstage),然后修改文件内容,那么文件就会同时出现在暂存区和非暂存区。

实际上,Git 只会暂存运行了 git add 命令的文件。如果执行 commit 命令,提交的版本是运行 git add 命令时的那个版本,而不是在工作区中修改后的当前版本。

git init:初始化 repository

$ git init
Initialized empty Git repository in C:/Users/Administrator/Desktop/git_test/.git/

随即在指定目录下创建一个空的 Git repository。生成的 .git 目录是一个隐藏文件,可以直接在 资源管理器 中查看,或者在 cmd 中输入命令 dir /a 。此目录是Git来跟踪管理版本库的,不能手动修改此目录里的文件。

git init 后就运行 git add <files> 命令,开始跟踪当前目录下的文件。

git log:显示提交日志

$ git log
commit e49ffb91d8776b952000f5a15791439ea11a51fe (HEAD -> master)
Author: phil <xxxxxxxxxx@xx.com>
Date:   Tue Jan 16 19:32:31 2024 +0800
    add distributed under the GPL

commit 670e23aeddd81f8fc3151d7866ad368b959376a4
Author: phil <xxxxxxxxxx@xx.com>
Date:   Tue Jan 16 17:03:37 2024 +0800
    add distributed

commit 5f2427d23f7bc17ab29a16c37c5bb380aa033d76
Author: phil <xxxxxxxxxx@xx.com>
Date:   Tue Jan 16 16:36:16 2024 +0800
    write a readme file

显示从最近到最远的提交日志,有 commit idAuthorData 以及文件修改详细信息。和 SVN 不一样,Git 的 commit id 不是1,2,3……递增的数字,而是一个 SHA1 计算出来的十六进制数字。

commit(提交)比较多,git log 的内容在一页显示不完整,就会显示冒号 :回车键可以往下滚一行、空格键往下滚一页,以便继续查看剩余内容直至显示 (END)。英文状态下 按 q 可以退出git log 状态。

参数--prettygit log --pretty=oneline,单行显示提交日志

$ git log --pretty=oneline
e49ffb91d8776b952000f5a15791439ea11a51fe (HEAD -> master) add distributed under the GPL
670e23aeddd81f8fc3151d7866ad368b959376a4 add distributed
5f2427d23f7bc17ab29a16c37c5bb380aa033d76 write a readme file

git reset:回退版本

参数--hardgit reset --hard [HEAD~[?]]/[commit_id]/HEAD@{?}

在 Git 中,用 HEAD 表示当前版本,上一个版本就是 HEAD^,上上一个版本就是 HEAD^^,后面 HEAD~[3] 来表示(难确定目标版本与HEAD~[?]的对应关系,不建议使用);根据 git reflog 输出的 commit_id 来确定回退版本;根据 git reflog 输出的 HEAD@{?} 来回退版本。

回退版本操作也会记录在日志中,并有相应的 commit id

$ git reflog
5f2427d (HEAD -> master) HEAD@{0}: reset: moving to 5f2427d23f7bc17ab29a16c37c5bb380aa033d76
670e23a HEAD@{1}: reset: moving to HEAD^
e49ffb9 HEAD@{2}: commit: add distributed under the GPL
670e23a HEAD@{3}: commit: add distributed
5f2427d (HEAD -> master) HEAD@{4}: commit (initial): write a readme file

$ git reset --hard "e49ffb9"
HEAD is now at e49ffb9 add distributed under the GPL

git reset 除了可以回退版本,也可以把被修改的 staged 的文件回退到工作区,详见 Git 操作流撤销修改。

git reflog:显示所有操作日志

reflogReference logs(参考日志),git reflog命令可以显示所有的历史版本记录。

这不同于git log 只可以查看到 HEAD 指针及其之前的版本信息,如果版本发生过回退操作,则无法显示 HEAD 指针之后的版本情况。

Git 基本命令与操作流,# Github,git

$ git reflog
e49ffb9 (HEAD -> master) HEAD@{0}: commit: add distributed under the GPL
670e23a HEAD@{1}: commit: add distributed
5f2427d HEAD@{2}: commit (initial): write a readme file

输出结果:
commit id 的前7位:根据这7位可以将版本库恢复到对应节点状态

HEAD@{n}:表示 HEAD 指针前移两次的版本,也就是上上个版本

最后一段字符串为提交的说明信息。

git add:追踪文件

git add 命令使用文件目录的路径作为参数;如果参数是目录的路径,该命令将递归地跟踪该目录下的所有文件。这是个多功能命令:可以用它开始跟踪新文件,或者把已跟踪的文件放到暂存区,还能用于合并时把有冲突的文件标记为已解决状态等。 将这个命令理解为“精确地将内容添加到下一次提交中”而不是“将一个文件添加到项目中”要更加合适。

$ git add fileName 指定文件
# 一次 add 多个文件
$ git add file1.txt file2.txt file3.txt
# 提交被修改的和新建的文件,但不包括被删除的文件
$ git add.
# 更新所有改变的文件,即提交所有变化的文件
$ git add -u --update update tracked files
# 提交已被修改和已被删除文件,但是不包括新的文件
$ git add -A --all add changes from all tracked and untracked files 

git commit:提交

git commit -m 'commit message(提交描述) fileName'

git checkout -- file:撤销修改

# 撤销对文件的修改
$ git checkout -- file

这里有两种情况:

  1. filename 已经添加到暂存区后,又作了修改,现在撤销修改,会回到在暂存区中的状态
  2. filename 自修改后还没有被放到暂存区,现在撤销修改,会回到上次提交的状态

总之,就是让这个文件回到最近一次 git addgit commit 时的状态。

git rm file:删除文件


Git 操作流

创建 repository

  1. 创建文件夹,作为版本库/仓库/repository。在 repository 中的所有文件都可以被 Git 管理,Git 能跟踪每个文件的修改、删除,以便任何时刻都可以追踪历史,或者在将来某个时刻还原。
    Windows 中命令如下:

    md C:\Users\Administrator\Desktop\Git_test
    cd C:\Users\Administrator\Desktop\Git_test
    dir
    

    Linux 中命令如下:

    mkdir /home/git_test
    
  2. 初始化一个 Git 仓库(把上述的目录变成 Git 可以管理的仓库)

    $ git init
    Initialized empty Git repository in C:/Users/Administrator/Desktop/git_test/.git/
    

    随即在指定目录下创建一个空的 Git repository。生成的 .git 目录是一个隐藏文件,可以直接在 资源管理器 中查看,或者在 cmd 中输入命令 dir /a 。此目录是Git来跟踪管理版本库的,不能手动修改此目录里的文件。


添加文件到 repository

  1. 创建并编辑文件

    $ touch 'fileName' # 创建文件
    $ vi 'fileName' # 输入a、i、o进行插入模式
    

    按键 esc进入命令模式,输入 :wq 退出文件编辑并保存。

  2. 将文件添加到仓库

    $ git add 'fileName' # 把文件添加到仓库(可添加多个文件或多次添加)
    

    命令执行后,没有任何提示。

  3. 提交文件

    $ git commit -m 'commit message' # 把文件提交到仓库
    

    -m 后面输入的是本次提交的说明,最好输入有意义的提交/改动信息。

    git commit命令执行成功后显示:几个个文件被改动(file changed);插入了几行内容( insertions(+) )。git commit命令执行成功后会告诉你,1 file changed:1个文件被改动(我们新添加的readme.txt文件);2 insertions:插入了两行内容(readme.txt有两行内容)。

Git 添加文件到 repository 需要 addcommit 两步,以便多次 add 不同的文件,最后一次性提交。


修改 committed 的文件并再次提交

对已经提交的文件修改,并将修改后的文件再次提交。

  1. 修改文件

    # 编辑文件
    $ vi 'fileName' # 输入a、i、o进行插入模式
    

    按键 esc 进入命令模式,输入 :wq 退出文件编辑并保存。

  2. 查看当前的状态。哪个文件被修改,是否被 commit

    $ git status
    # 查看修改内容
    $ git diff readme.txt # difference(diff)
    
  3. 将修改后的文件再次提交

    $ git add readme.txt
    $ git commit -m "add distributed"
    $ git status
    $ cat 'fileName' # 将文件内容打印显示
    

删除文件

如果文件存在于版本库中(被追踪 /add),删除文件需要在工作区和版本库中都删除,仅删除工作区中的文件不会影响版本库中的文件。

$ touch file.txt
$ git add file.txt
$ git commit -m "add file.txt"

在工作区中删除文件

$ rm test.txt
$ git status
On branch master
Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
        deleted:    test.txt
no changes added to commit (use "git add" and/or "git commit -a")

在版本库中删除文件。

$ git rm test.txt 
$ git commit -m "remove test.txt" # 提交删除 
# output
[master b3a984f] remove test.txt
 1 file changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 test.txt

若在工作区中误删文件后,可以利用版本库中的文件还原:

$ git checkout -- test.txt

撤销修改

  1. 修改状态为 stagedcommitted 的文件,若想丢弃工作区的修改时,用命令 git checkout -- file

  2. 修改状态为 staged 的文件,并添加到了暂存区,想丢弃修改。分两步:第一步用命令 git reset HEAD <file>,然后 git checkout -- file

  3. 修改状态为 committed 的文件,并已提交但没有推送到远程库,想要撤销本次提交。用命令 git reset 回退版本。

Git 基本命令与操作流,# Github,git



参考:

Git book 2nd Edition (2014)

Git教程 - 廖雪峰的官方网站 (liaoxuefeng.com)

Git 教程 | 菜鸟教程 (runoob.com)

faster-git datawhale

【学了就忘】Git操作 — 51.git reflog命令 - 简书 (jianshu.com)

git rebase详解(图解+最简单示例,一次就懂)-CSDN博客文章来源地址https://www.toymoban.com/news/detail-803963.html

)

Git 教程 | 菜鸟教程 (runoob.com)

faster-git datawhale

【学了就忘】Git操作 — 51.git reflog命令 - 简书 (jianshu.com)

git rebase详解(图解+最简单示例,一次就懂)-CSDN博客

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

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

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

相关文章

  • Git 的基本操作 ——命令行

    详解如下: 本地仓库: 是在开发人员自己电脑上的Git仓库,存放我们的代码(.git 隐藏文件夹就是我们的本地仓库) 远程仓库: 是在远程服务器上的Git仓库,存放代码(可以是github.com或者gitee.com 上的仓库,或者自己该公司的服务器) 工作区: 我们自己写代码(文档)的地方 暂存区:

    2024年02月05日
    浏览(44)
  • Git的基本命令操作超详细解析教程

    Git:一个开源的 分布式版本控制系统 ,它可以在本地和远程仓库之间管理源代码和文档的版本。推荐有Linux基本命令的基础学习更佳,学起来不会枯燥、乏味。 Git安装网址 安装完成后,找到键盘 Win 键按下后,在 开始菜单 中找到刚下载好的 Git Bash 打开git命令行窗口,准备

    2024年02月04日
    浏览(50)
  • 【详细教程】关于如何使用Git&GitHub的基本操作汇总&GitHub的密钥配置 ->(个人学习记录笔记)

    点击 官网链接 后,进入Git官网,下载安装包 然后根据系统类型进行下载,一般为windows 一般选择64位的安装器版本 下载好后开始安装 点击Next 默认即可,Next 默认即可,Next Next Next Next Next Next Next Next Next Next install即可 我们在桌面随便创建一个文件夹例如code 进入code文件夹 鼠

    2024年02月06日
    浏览(57)
  • Git 分布式版本控制系统基本概念和操作命令

    目录 Git 基本概念 功能特点 工作流程 操作命令 新建代码库 配置 增删文件 代码提交 分支 标签 查看信息 远程同步 撤销 其他 小结 Git 是一个开源的分布式版本控制系统,用于跟踪文件的变更历史。它最初由 Linux Torvalds 设计,用于 Linux 内核的开发,但由于其强大的功能和灵

    2024年03月27日
    浏览(65)
  • git介绍,安装(手把手),命令与使用(包含IDEA操作,github,gitee的万字图文详述)

    目录 1.Git 1.1 概述 1.2、版本控制 1.3 版本控制工具 1.3.1 集中式版本控制工具 1.3.2 分布式版本控制工具 1.4 Git简史 1.5 Git 工作机制 1.6 Git 和代码托管中心 2.Git安装 2.1 下载安装包 2.2 选择安装路径 2.3 Git 选项配置 2.4 再次确定 Git 安装目录名 2.5 选择Git 的默认编辑器 2.6 分支名设置

    2024年02月05日
    浏览(57)
  • 【Git】Git(分布式项目管理工具)在Windows本地/命令行中的基本操作以及在gitee中的操作,使用命令行、图形化界面,进行提交,同步,克隆

    介绍 这里是小编成长之路的历程,也是小编的学习之路。希望和各位大佬们一起成长! 以下为小编最喜欢的两句话: 要有最朴素的生活和最遥远的梦想,即使明天天寒地冻,山高水远,路远马亡。 一个人为什么要努力? 我见过最好的答案就是:因为我喜欢的东西都很贵,

    2024年02月04日
    浏览(72)
  • git/github 常规操作第四篇,如何用命令回退(回滚/还原)代码,看这篇文章就够用了

    当我们代码合并错误,或者代码因为某种原因找不到了,但是在历史版本中有最完整的代码,我们要怎么回滚或回退到对应版本还原代码呢,下面就用两种方式来回退。 第一种方式: 重置reset (谨慎:重置的方式不会保留废弃的提交记录) 1、查看并找到我们要回退的版本号

    2024年02月16日
    浏览(51)
  • git常用命令(git github ssh)

    被” “和\\\"[ ]“包含起来的内容表示用户自己选定的参数。但” “是要求用户必须输入的,而”[ ]\\\"表示用户可以根据自己的需要选择输入。 比如git reset的语法是这样的: 其中commitid指的是commit id,可以理解为每一提交到本地仓库之后该仓库状态的ID,利用这个ID我们可以快速

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

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

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

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

    2024年02月04日
    浏览(49)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包