首页 > 其他分享 >Git必知必会基础(03):Git本地仓库操作

Git必知必会基础(03):Git本地仓库操作

时间:2024-01-17 22:00:15浏览次数:28  
标签:03 Git 文件 必知 仓库 git 提交 --

 

本系列汇总,请查看这里https://www.cnblogs.com/uncleyong/p/10854115.html

常用命令汇总

下面是本地仓库常用命令

命令

作用

备注

git init

初始化本地Git仓库(项目)

会在当前目录中创建—个.git目录,用于记录所有的版本变更信息

git status

查看本地仓库的文件状态

显示工作目录和暂存区的状态,能看到那些修改被暂存到了,哪些没有,哪些文件没有被 Git tracked 到

git add 文件路径

将文件添加到跟踪列表(暂存区),交由git托管

-A 或 --all或 . 表示添加所有文件,也可以使用*进行匹配,比如*.java

文件路径可以是文件也可以是目录

git commit

将跟踪列表中(暂存区)的文件提交到本地仓库

-m指定提交日志,方便后续查看提交或改动记录

git log

用于查看提交历史(commit的记录,也就是提交日志,包含完整版本号、作者、日期、comments),显示的顺序是由近到远,也就是最新的修改在上面

概要显示:git log --oneline,一行展示每次日志,内容仅含7位版本号、comments

查看最近n次的提交:git log -n,n是数字

查看指定作者的提交,如果没有,就显示空:git log --author xxx

一条线串联整个提交历史:git log --graph,结果左侧会有一条线

显示最近n次提交的差异:git log -p -n,n是数字

git reset --hard 版本id

回退到指定版本

HEAD表示当前的版本

git reflog

查看所有操作记录

包括被回退的版本id、reset操作等

 

说明:所有命令都必须在Git仓库的根目录下执行,也就是.git同级目录操作,否则会报错:

 

文件状态

Git文件的四种状态:

  untracked:未跟踪,表示文件不受git管理,显示为:Untracked files

  staged:已暂存,表示对已修改文件的当前版本做了标记,显示为:Changes to be committed

  committed:已提交,表示文件已经被提交到本地仓库

  modified:已修改,表示文件内容已被修改,但没有对已修改文件的当前版本做标记,显示为:Changes not staged for commit

 

命令操作

初始化仓库

创建项目目录:mkdir pytest_apiautotest

 

初始化:git init

 

目录下多了.git目录,将当前的目录交由Git进行管理,用于记录所有的版本变更信息,HEAD文件记录了当前分支

 

补充:上面提示信息是说要配置全局默认分支

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
Initialized empty Git repository in D:/ren/code/pytest_apiautotest/.git/

 

设置默认分支为master级别:git config --global init.defaultBranch master

 

查看状态、添加暂存区、提交到本地仓库

查看状态:git status,还没任何新增修改

 

新增文件:touch qzcsbj.txt

 

添加到暂存区:git add qzcsbj.txt

 

提交到本地仓库:git commit -m "add qzcsbj.txt"

1个文件改变,0行新增,0行删除

 

更新并提交到本地仓库

编辑文件:vim qzcsbj.txt

文件内容如下:

 

查看状态:git status

Changes not staged for commit:未暂存以供提交的更改

 

添加到暂存区:git add *.txt

 

提交到本地仓库:git commit -m "modify qzcsbj.txt"

1个文件改变,1行新增

 

修改文件内容

 

提交到本地仓库

1个文件改变,3行新增,1行删除

 

查看日志

git log

显示的顺序是由近到远

显示的log的含义:

commit id,每个id都是唯一的

Author,初始化时候的配置信息,作者及邮箱

Date,提交日期

xxx,commit -m的提交说明

 

git log --oneline,仅含7位版本号、comments

 

回退

git reset --hard  c7844cd350d943dd8ff5486e122c4cde419b7322

 

只看到两个版本了

 

git reflog,前七位是版本简写

 

git reset --hard 50ca458

 

忽略文件

可以在git仓库的根目录下添加—个名为.gitignore的文件,用于指定需要被git忽略的文件或文件夹

注意:

  文件名必须是.gitignore

  文件必须在项目的根目录下

  每行指定—个忽略文件

  以#开头的行表示注释

 

比如:java自动化中,target文件夹、.iml文件是不需要提交的   创建如果文件、文件夹

 

创建.gitignore文件,内容如下:

 

查看状态,未跟踪的文件中没有被添加到忽略文件中的内容

 

提交到本地仓库,仅显示创建了ren.txt和.gitignore两个文件

 

【bak】

 

 

标签:03,Git,文件,必知,仓库,git,提交,--
From: https://www.cnblogs.com/uncleyong/p/17964939

相关文章

  • github git push 失效问题
    以前推代码到github.com都比较正常,最近几天无论如何都不成功,一直超时,在互联网上搜索了大半天,终于才找到一篇文章解决问题。原文参考:https://bengsfort.github.io/articles/fixing-git-push-pull-timeout/。github文档参考:https://docs.github.com/en/authentication/troubleshooti......
  • 03 输入输出系统和总线结构
    输入输出技术计算机系统中存在多种内存与接口地址(输入输出)的编制方法,常见的是两种:1、内存与接口地址独立编制方法内存地址和接口地址是完全独立的两个地址空间。优点:编程序和读程序很容易使用和辨认。缺点:用于接口的指令(需要独立设计)太少、功能太弱。2、内存与接口地址统......
  • webserver2003解析
    webserver解析/etc/os-release查看操作系统发行版本netstat-tunal查看开放端口或者使用kalinmap-sV-p-192.168.218.131查看22/tcpopensshOpenSSH8.2p1Ubuntu4ubuntu0.4(UbuntuLinux;protocol2.0)80/tcpopenhttpApachehttpd2.4.41((Ubunt......
  • GitLab CI/CD 自动化部署全流程
    GitLabCI/CD自动化部署全流程:https://blog.csdn.net/weixin_43025823/article/details/125325480?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-125325480-blog-131010258.235^v40^pc_relevant_3m_sort_dl_base2&spm=1001.......
  • C6031 返回值被忽略:"scanf"解决办法【C语言】
    环境vs2022报错C6031返回值被忽略:"scanf"解决办法【C语言】解决2.在禁用特定警告中添加4996,6031原因因为在ANSIC中没有scanf_s(),只有scanf(),但是scanf()在读取时不检查边界,所以可能会造成内存泄露......
  • 安装git
    下载sudoaptinstallgit设置账号gitconfig--globaluser.name<用户名>gitconfig--globaluser.email<邮箱>配置SSH创建验证用的公钥,因为git是通过ssh的方式访问资源库的,所以需要在本地创建验证用的文件ssh-keygen-C<邮箱>-trsa一路回车完事进入.ssh文件......
  • `cargo build`报错:`failed to run custom build command for libgit2-sys v0.13.2+1.4
    cargobuild报错:failedtoruncustombuildcommandforlibgit2-sysv0.13.2+1.4.21问题背景在使用cargo编译cargo-cache时出现报错:Thefollowingwarningswereemittedduringcompilation:warning:[email protected]+1.4.2:Infileincludedfromlibgit2/src/pack.......
  • 洛谷题单指南-模拟和高精度-P1042 [NOIP2003 普及组] 乒乓球
    原题链接:https://www.luogu.com.cn/problem/P1042题意解读:分别针对11分制和21分制,输出每局比分。只需要判断一局的结束条件:得分高者如果达到11或者21,且比分间隔大于等于2分,则表示一局结束,可开始下一局,用模拟法即可解决。100分代码:#include<bits/stdc++.h>usingnamespaces......
  • git 让一个分支进度追上main
    要让一个Git分支追上主分支(通常是`main`或`master`分支),你可以执行以下步骤:1.**确保你的本地主分支是最新的:**在你的主分支上运行以下命令,确保它是最新的状态:```bashgitcheckoutmaingitpulloriginmain```2.**切换到你的目标分支:**切换到你想要追赶主分......
  • 输入自己买的域名可以访问到自己github上的网页
    需求:在腾讯云上买了一个域名,现在想通过在浏览器中输入域名,能打开自己写的网页.步骤:1、在github上面新建一个仓库,必须公开的仓库,不能是私有的,把项目代码push进去。一定要仓库下面直接是文件,不要又包一层文件夹。这里我的页面内容在是a.html里面。 这里有个问题:我本来是想,直......