首页 > 其他分享 >Git

Git

时间:2024-04-25 20:36:04浏览次数:8  
标签:git 暂存区 DESKTOP github M633EU5 Git wzh

简介

Git是一个免费开源的分布式版本控制系统,它使用一个叫做仓库(Repository)的数据库来记录文件的变化,需要的时候可以很方便的将文件恢复到之前的某一个版本。同时,分布式的控制系统也可以很方便的将本地的项目同步给其他人。

新建仓库

创建仓库只需要把一个目录变成Git可以管理的仓库就可以了,一般来说,有两种创建仓库的方式:

  1. git init

    该方式可以直接把本地的一个目录变成仓库

    wzh@DESKTOP-M633EU5 MINGW64 /e/github
    $ mkdir learn_git
    
    wzh@DESKTOP-M633EU5 MINGW64 /e/github
    $ cd learn_git/
    
    wzh@DESKTOP-M633EU5 MINGW64 /e/github/learn_git
    $ git init
    Initialized empty Git repository in E:/github/learn_git/.git/
    
    wzh@DESKTOP-M633EU5 MINGW64 /e/github/learn_git (master)
    $
    

    可以看到提示符后面多了一个(master)
    也可以通过git init learn_git完成这两步操作

  2. git clone

    该方式可以将远程服务器上的仓库克隆到本地

    wzh@DESKTOP-M633EU5 MINGW64 /e/github
    $ git clone https://github.com/hetailang/SqueezeAttention.git
    Cloning into 'SqueezeAttention'...
    remote: Enumerating objects: 862, done.
    remote: Counting objects: 100% (157/157), done.
    remote: Compressing objects: 100% (104/104), done.
    remote: Total 862 (delta 44), reused 136 (delta 33), pack-reused 705
    Receiving objects: 100% (862/862), 5.77 MiB | 383.00 KiB/s, done.
    Resolving deltas: 100% (184/184), done.
    
    wzh@DESKTOP-M633EU5 MINGW64 /e/github
    $ cd SqueezeAttention/
    
    wzh@DESKTOP-M633EU5 MINGW64 /e/github/SqueezeAttention (main)
    $
    

工作区与文件状态

Git的本地数据管理分为三个区域:工作区,暂存区,本地仓库。

  • 工作区:在资源管理器中看到的目录就是工作区
  • 暂存区:临时存储区域,用来保存即将提交到Git仓库的修改内容
  • 本地仓库:保存文件的所有历史版本

工作区修改文件后,需要将修改的部分添加到暂存区,然后才能将文件提交到本地仓库

关于暂存区,如果在工作区每修改一次都需要将文件提交到仓库会比较麻烦,所以可以将阶段性的修改都添加到暂存区一起提交。

Git中的文件分为以下四种状态:未跟踪,未修改,已修改,已暂存

image-20240421000226991

添加和提交文件

git init    # 新建仓库
git status  # 查看仓库状态
git add     # 将文件添加到暂存区
git commit  # 将暂存区的文件提交到仓库
git log     # 查看修改日志

在仓库中新创建一个文件,使用git status查看其状态,可以看到文件的状态为未跟踪

wzh@DESKTOP-M633EU5 MINGW64 /e/github/learn_git (master)
$ echo "first file" > file1.txt

wzh@DESKTOP-M633EU5 MINGW64 /e/github/learn_git (master)
$ ls
file1.txt

wzh@DESKTOP-M633EU5 MINGW64 /e/github/learn_git (master)
$ cat file1.txt
first file

wzh@DESKTOP-M633EU5 MINGW64 /e/github/learn_git (master)
$ git status
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        file1.txt

nothing added to commit but untracked files present (use "git add" to track)

使用git add将该文件添加到暂存区,文件的状态将变为以暂存

wzh@DESKTOP-M633EU5 MINGW64 /e/github/learn_git (master)
$ git add file1.txt

wzh@DESKTOP-M633EU5 MINGW64 /e/github/learn_git (master)
$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   file1.txt

使用git commit将暂存区中的文件提交到仓库,注意该命令只会提交暂存区中的文件,不会提交工作区的其他文件

wzh@DESKTOP-M633EU5 MINGW64 /e/github/learn_git (master)
$ git commit -m "first commit"
[master (root-commit) 271e6f4] first commit
 1 file changed, 1 insertion(+)
 create mode 100644 file1.txt

wzh@DESKTOP-M633EU5 MINGW64 /e/github/learn_git (master)
$ git status
On branch master
nothing to commit, working tree clean

git reset 回退版本

git reset --soft   # 回退到某一版本,并保存工作区与暂存区的修改内容
git reset --hard   # 回退到某一版本,并丢弃工作区域暂存区的修改内容
git reset --mixed  # 回退到某一版本,并保留工作区的修改内容,丢弃暂存区的修改内容(默认)
git ls-files       # 列出仓库中已跟踪的文件

“丢弃”可以理解为用仓库的状态覆盖目标区域的状态,但是这个操作不会影响到还未被跟踪的文件

删除文件

在git中删除文件有两种方法:

  1. 首先在本地工作目录删除,将文件拖到回收站或rm <file>
  2. 将该删除操作同步到暂存区 : git add <file>
  3. 提交 : git commit

git为删除提供了一种简化的操作 : git rm <file>,该操作可以同时删除工作区与暂存区的<file>,然后再提交到仓库即可

标签:git,暂存区,DESKTOP,github,M633EU5,Git,wzh
From: https://www.cnblogs.com/hetailang/p/18158495

相关文章

  • gitlab 如何设置保护分支
    在GitLab上设置保护分支的步骤与在GitHub上略有不同。以下是在GitLab上设置保护分支的步骤:登录GitLab并选择仓库:登录你的GitLab账号,选择你要设置保护分支的项目。进入仓库设置:进入项目页面后,在左侧导航栏中点击“Settings”。选择Repository选项:在“Settings”页面的......
  • 用github搭建图床
    本节内容,将会以极为简介、快速的方式,带领你认识图床、搭建图床。我的这篇文章里所用的图片,就是用此种方法所搭建的图床上传而成的(如下图)。在这里,需要用到一个工具叫PicGo。不过它的用法很简单。一会儿就搞定了。一、何为图床所谓图床,就是存储图片的服务器。我们写在线文档的......
  • git命令下,mac环境下载依赖相关报错问题解决方案
    1.安装fundry框架curl-Lhttps://foundry.paradigm.xyz|bash2.写入环境变量source/Users/xx/.bashrc3.foundryup问题1报错:致命错误:无法访问'https://github.com/foundry-rs/forge-std解决方案:设置hosts文件:添加指定url的ip地址:140.82.112.4github.com185.1......
  • Git runner 返回报错: status=couldn't execute POST against dial tcp: lookup gitlab
    当发现Gitlab上的runner显示出runneroffline的问题时1查一下gitrunner的报错runner=xxxxstatus=couldn'texecutePOSTagainsthttps://gitlab/api/v4/jobs/request:Posthttps://gitlab/api/v4/jobs/request:dialtcp:lookupgitonx.x.x.x:53:servermisbehaving......
  • dotnet 修复 GitHub Action 构建过程提示 NETSDK1127 错误
    本文告诉大家,如何修复GitHubAction构建过程提示errorNETSDK1127:ThetargetingpackMicrosoft.WindowsDesktop.App.WindowsFormsisnotinstalled.Pleaserestoreandtryagain.错误在进行GitHubAction构建时,如果自己的项目是一个旧项目,采用旧的.NETSDK版本,将可......
  • dotnet 8 破坏性改动 在 AssemblyInformationalVersionAttribute 添加上 git 的 commi
    我在一个WPF项目里面,在界面显示应用的版本号,更新到dotnet8的SDK之后,发现我的界面布局损坏了。本质上这个破坏性改动和WPF没有什么关系,是dotnet的SDK或编译器的破坏性变更,在AssemblyInformationalVersionAttribute的InformationalVersion属性里面写入了当前的git......
  • https://github.com/meta-llama/llama3 文生图
    https://github.com/meta-llama/llama3 Skiptocontent NavigationMenu Product Solutions OpenSource Pricing Searchorjumpto...  SigninSignup  meta-llama/llama3PublicNotificationsFork 1.4k Star ......
  • 面试被刷,原因居然是不会Git
    大家好,我是知微!假设你是一个刚入行的菜狗程序员,正在开发一个软件。现在老板需要你加一些功能,此时的你有一些担忧,如果对代码进行大刀阔斧的改动,最终却失败了。之前能正常运行的代码也被改得乱七八糟的,跑不起来了,那可咋办?聪明的你想到了一个绝妙的主意,那就是把正常的代码复制一......
  • Git教程
    1、创建目录(本地无GitHub上的目录,首次创建)为了保证本地目录与远程github上的目录一致,第一次使用时,需使用TortoiseGit中的clone(克隆)与远程目录进行同步,操作步骤如下,选择本地磁盘下的某一目录,本文在E盘下新建了一个文件夹git,进入git文件夹后点击鼠标右键选择下面的GitClone,克......
  • git进入vim模式的处理
    1、当gitcommit没-m输入说明时,我们会进入vim模式,在此模式下可以进行提交说明;2、输入i,进入insert输入模式,输入自己提交内容的说明;3、输入完后,按ESC,下方insert消失;4、输入":",再输wq(写权限及退出),回车,这就完成了,回到命令输入界面补充:按Esc进入普通模式输入:q退出编辑器(若......