Git本地仓库基本操作及技巧

Git是什么?

一个分布式版本控制系统,和SVN类似,但远比SVN强大的一个版本控制系统 ①Git可以方便的在本地进行版本管理,如同你本地有一个版本管理服务器一样 我们可以选择在合适的时间将本地版本推送到统一的版本管理服务器 ②Git每次会提取整个代码仓库的完整镜像,相当于对整个代码仓库都进行了一次备份,这样计时版本服务器除了问题,我们可以直接采用本地仓库恢复!结合本地版本管理功能,远程版本管理服务器出问题了,我们依然能继续写自己的代码,当他恢复的时候我们再提交我们的本地版本! Git研发初期是为了更好的管理Linux内核,不过现在已经广泛应用于各种项目中!

下面看下Git本地仓库基本操作,具体内容如下所示:

设置姓名和邮箱

设置使用Git时的姓名和邮箱地址。名字须用英文输入
git config --global user.name "chuyaoxin"
git config --global user.email yaoxinchu@126.com

命令运行的结果是在“C:\Users\用户名”路径下,产生一个.gitconfig文件,可以用记事本打开。

想更改这些信息时,可以直接编辑这个设置文件。这里设置的姓名和邮箱地址会用在Git的提交日志中。由于在GitHub上公开仓库时,这里的姓名和邮箱地址也会随着提交日志一同被公开,所以请不要使用不便公开的隐私信息。

创建仓库

创建一个新文件夹,比如“TestForGit”
然后右键点击这个文件夹,选择Git Bash Here
打开后,输入git init完成代码仓库的建立

输入ls -al可以看到目录下有个.git的文件夹,但这个目录默认是隐藏的。

提交本地代码

先用add命令把要提交的内容都加进来,然后commit才是真的去执行提交操作。
第一步,用命令git add告诉Git,把文件添加到仓库
git add readme.txt
第二步,用命令git commit告诉Git,把文件提交到仓库
git commit -m "write a readme file"

.gitignore

.gitignore是Git的忽略配置文件,放在项目根目录下就行,这样在提交代码时就不会跟踪在.gitignore配置文件列举的文件。另外,.gitignore文件本身需要被git跟踪管理,不能被忽略。

git add

用途:可以用来跟踪新文件,或者添加已被修改的跟踪的文件到缓存区,或者把合并的冲突文件标记为已解决
git add的原意是更新当前工作目录树修改的内容到索引中(也就是缓存中去)
主要针对两种文件:(1)版本库没有跟踪的文件(2)版本库已经跟踪,但是修改了的文件
另外git add会自动忽略.gitignore文件所忽略的文件。

git add .
将文件的修改、文件的新建(注意!不包括被删除的文件),添加到暂存区
git add .会把所有untrack的文件都加入暂存区,并且会根据.gitignore做过滤

git add *
git add *会忽略.gitignore把任何文件都加入暂存区

git add -u
将文件的修改、文件的删除(注意!仅监控被add的文件,不包括新文件),添加到暂存区,u表示update

git add -A
将文件的修改,文件的删除,文件的新建(相当于add .与add -u的合集),添加到暂存区,A表示all其他
可以使用git add -h命令来查看

$ git add -h
usage: git add [<options>] [--] <pathspec>...
  -n, --dry-run     dry run
  -v, --verbose     be verbose
  -i, --interactive   interactive picking
  -p, --patch      select hunks interactively
  -e, --edit      edit current diff and apply
  -f, --force      allow adding otherwise ignored files
  -u, --update     update tracked files
  --renormalize     renormalize EOL of tracked files (implies -u)
  -N, --intent-to-add  record only the fact that the path will be added later
  -A, --all       add changes from all tracked and untracked files
  --ignore-removal   ignore paths removed in the working tree (same as --no-all)
  --refresh       don't add, only refresh the index
  --ignore-errors    just skip files which cannot be added because of errors
  --ignore-missing   check if - even missing - files are ignored in dry run
  --chmod (+|-)x    override the executable bit of the listed files
  --pathspec-from-file <file>
             read pathspec from file
  --pathspec-file-nul  with --pathspec-from-file, pathspec elements are separated with NUL character

git commit

git commit -m "write a readme file"

可以在使用了多次git add之后再使用git commit来提交。
在git commit命令中,-m后面输入的是本次提交的说明,可以输入任意内容,但最好是有意义的,这样就能从历史记录里方便地找到改动记录。
执行成功后,从图中可以看出,一个文件被改动,插入了6行内容。

git statusgit status
可以使用git status命令查看是否还有文件未提交

上图说明当前文件都已正常提交。
如果我对上传的文件进行修改,但是却不提交会如何?

会报出如上所示的错误!modified: readme.txt no changes added to commit
字面意思:readme.txt被修改,提交没有变化

git diffgit diff readme.txt
git status可以让我们知道有没有正常提交,比如上面那个例子,但如果要查看文件到底修改了什么内容,可以使用git diff 文件名命令

这条命令将我对这个文件的修改记录显示了出来

查看提交记录git log

使用git log即可查看历史提交信息

从这张图也可以看出之前git commit -m "write a readme file"中,-m部分的作用,这个和编程时写注释是一样的,可以不写,但是写的话方便以后的工作。
还有要注意的地方是输出的结果,
显然我这是提交了两次,以第一次的结果为例,

commit 418ee0fc27d78a71f5869451b5a1599cc028b0ca (HEAD -> master)
Author: chuyaoxin yaoxinchu@126.com
Date: Tue Aug 4 19:48:59 2020 +0800
write a readme file

对应的含义分别是

此次提交对应的版本号
提交人:姓名 邮箱
提交的时间
提交版本修改的内容:就是我们git commit -m “xxx”里的xxx

撤销未提交的修改

如果对文件进行了错误的修改,且已经Ctrl+S保存,但还没有提交,想要撤销之前的修改可以使用checkout命令

不仅未提交,而且没有add
如果是这种情况,只需要一句git checkout 修改的文件名即可
例如,git checkout readme.txt

此时,再打开readme.txt,我对此文件的第二次修改被取消掉了

已经add,但还没有提交
如果我们已经add了的话,那么直接checkout是没任何作用的,我们要先取消添加才可以撤回提交
git reset HEAD readme.txt
git checkout readme.txt

版本回退git reset
如果我们已经提交,但想退回到之前的版本,可以使用git reset命令
比如我先在readme.txt中添加了一行,然后git add readme.txtgit commit -m "add the third step",添加并提交到仓库
完成之后,使用git log检查提交记录。

PS:通过这张图也能看出,最新的版本号显示在最上方git reset --hard HEAD
在git中,HEAD表示当前版本,HEAD表示上一个版本,HEAD^表示上上个版本
退回到上一个版本需要依次输入以下指令
git reset --hard HEAD
git reset --hard HEAD^
执行结果如下图所示:

再输入git log查看,此时的版本号已经发生了变化,最新修改的那个版本号没有显示出来了

git reset --hard 版本号
这条命令可以让我们将当前版本更改为存在过的任意一个版本
同时仔细观察这张图,

可以很容易的猜到,其实版本号只要输入前七位就可以了
所以我们之前的回退指令可以用这条来替代,
git reset --hard 418ee0fgit reflog
如果你版本回退之后发现,还是最新的那个版本好一点,但此时通过git log已经找不到那个版本号了,
可以使用git reflog

显然,版本回退之前的最新版本号为14a5f92
然后使用git reset --hard 14a5f92
打开readme.txt,因为版本回退而去掉的修改又回来了

总结

到此这篇关于Git本地仓库基本操作及技巧的文章就介绍到这了,更多相关Git本地仓库基本操作内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Git 教程之远程仓库详解

    Git 远程仓库 Git 并不像 SVN 那样有个中心服务器. 目前我们使用到的 Git 命令都是在本地执行,如果你想通过 Git 分享你的代码或者与其他开发人员合作. 你就需要将数据放到一台其他开发人员能够连接的服务器上. 本例使用了 Github 作为远程仓库,你可以先阅读我们的 Github 简明教程. 添加远程库 要添加一个新的远程仓库,可以指定一个简单的名字,以便将来引用,命令格式如下: git remote add [shortname] [url] 本例以Github为例作为远程仓

  • git 入门教程之本地仓库和远程仓库的本质介绍

    本地仓库和远程仓库在本质上没有太大区别,只不过一个是本地电脑,一个是远程电脑. 远程仓库不一定非得是 github 那种专门的"中央服务器",甚至局域网的另外一台电脑也可以充当"中央服务器"的角色,因为它存在的最初目的只是方便大家交换彼此的提交记录而已! 所以本地仓库和远程仓库的基本行为应该是一致的,约定俗成的规定是远程仓库一般不直接参与日常开发工作,主要作为项目托管中心. 某些自动化持续集成环境中也可能会直接操作远程仓库,这时远程仓库就真的和本地仓库没什么区别了!

  • git远程仓库_动力节点Java学院整理

    如果你已经掌握了如何在Git仓库里对一个文件进行时光穿梭,你再也不用担心文件备份或者丢失的问题了. 可是有用过集中式版本控制系统SVN的童鞋会站出来说,这些功能在SVN里早就有了,没看出Git有什么特别的地方. 没错,如果只是在一个仓库里管理文件历史,Git和SVN真没啥区别.为了保证你现在所学的Git物超所值,将来绝对不会后悔,同时为了打击已经不幸学了SVN的童鞋,本章开始介绍Git的杀手级功能之一(注意是之一,也就是后面还有之二,之三):远程仓库. Git是分布式版本控制系统,同一个Git仓

  • Git如何修改远程仓库地址

    公司搬移, 作为git仓库的服务器IP地址变了. 本地代码挺多,重新检出太占时间,可以修改一个什么配置让我本地仓库和新的远程仓库建立关联吗, 答案是肯定的! 方法有很多,这里简单介绍几种: 以下均以项目git_test为例: 老地址:http://192.168.1.12:9797/john/git_test.git 新地址:http://192.168.100.235:9797/john/git_test.git 远程仓库名称: origin 方法一 通过命令直接修改远程地址 进入git_te

  • Git本地仓库基本操作及技巧

    Git是什么? 一个分布式版本控制系统,和SVN类似,但远比SVN强大的一个版本控制系统 ①Git可以方便的在本地进行版本管理,如同你本地有一个版本管理服务器一样 我们可以选择在合适的时间将本地版本推送到统一的版本管理服务器 ②Git每次会提取整个代码仓库的完整镜像,相当于对整个代码仓库都进行了一次备份,这样计时版本服务器除了问题,我们可以直接采用本地仓库恢复!结合本地版本管理功能,远程版本管理服务器出问题了,我们依然能继续写自己的代码,当他恢复的时候我们再提交我们的本地版本! Git研发初期是

  • 如何删除Git本地仓库和删除GitHub上的Git远程仓库Repository(推荐)

    1.删除Git本地仓库 删除Git本地仓库的根本原理是删除"Git本地仓库"里面的根目录下面的隐藏文件夹".git" (1)方法1:自己手动删除掉"Git本地仓库"里面的根目录下面的隐藏文件夹".git"(如上图所示) (2)方法2:在本地仓库的目录下调用命令行删除根目录下的.git文件夹,输入 find . -name ".git" | xargs rm -Rf (3)检验是否成功删除了本地仓库:在Git

  • 详解Git建立本地仓库的两种方法

    Git是一种分布式版本控制系统,通常这类系统都可以与若干远端代码进行交互.Git项目具有三个主要部分:工作区,暂存目录,暂存区,本地目录: 安装完Git后,要做的第一件事,就是设置用户名和邮件地址.每个Git提交都使用此信息,并且将它永久地烘焙到您开始创建的提交中: $ git config --global user.name "John Doe" $ git config --global user.email johndoe@example.com 之后我们可以建立一个本地仓库.

  • Git建立本地仓库并上传到Gitee的详细步骤

    电脑安装git客户端.注册github账号并登陆 到本地项目文件夹右键选择git bash here 输入个人信息(代码提交者) git config --global user.name "xxxx" git config --global user.email xxxxx@qq.com 在本地项目目录创建本地仓库 git init 输入命令后项目目录会有一个隐藏的.git文件夹 上传所有代码到本地仓库 git add.   (注意add后面有个点,与add之间有一空格) 这样就把代

  • Git获取本地仓库及基础操作指令总结

    目录 一.Git获取本地仓库 二.Git基础操作指令 1.查看修改的状态(status) 2.添加工作区到暂存区(add) 3.提交暂存区到本地仓库(commit) 4.查看提交日志(log) 5.版本回退 6.添加文件至忽略列表 知识点补充 一.Git获取本地仓库 要使用Git对我们的代码进行版本控制,首先需要获得本地仓库 1.在电脑任意的磁盘位置创建一个空目录(例如test)作为我们的本地Git仓库 2.进入这个目录中,点击右键打开Git bash窗口 3.执行命令git init 4.如果

  • java如何使用自己的maven本地仓库详解

    本地仓库 主要是一种缓存,当你使用远程仓库中下载组件后,它下一次会优先从本地进行加载,一般位于USER_HOME/.m2目录下,我们自己也可以建立公用的包,把包发布到本地仓库,自己在其它项目里直接可以用,当然如果希望在任务地方都使用自己的包,需要把它发布到远程仓库中. 像nuget,npm一样maven也是仓库 Jar的maven配置 <dependency> <groupId>javalindday</groupId> <artifactId>jpaDem

  • SpringCloud Config使用本地仓库及map注入

    默认情况下,SpringCloud Config使用的是远程的仓库,所以默认要配置uri 如果不想使用远程仓库,而使用本地仓库,需要做以下配置: spring.profiles.active=native spring.cloud.config.server.native.search-locations=file:D:/git/myconfig 注意3点: 1. 使用spring.profiles.active指定要使用本地仓库,而不是其他属性.注意这个属性一般的作用是激活哪一套配置,在con

  • IntelliJ IDEA使用git初始化仓库的使用方法

    使用方法 首先在Github或者Gitee上面新建一个仓库 复制仓库的链接 用idea在本地新建一个demo项目 点击菜单栏的VCS,按照下图进行选择,选择新建的项目文件夹 这时idea左上角会出现如下几个按钮,本地的代码仓库已经创建完成 点击下图的按钮或者按Ctrl+K,将项目提交到本地仓库 勾选所有的文件后,填写commit message,内容自己定义,点击commit 选择commit 选择VCS -> Git -> Push或者按Ctrl + Shift + K,将项目提交到刚才在码

随机推荐