Git(四):远程仓库的搭建、获取与更新

这篇具有很好参考价值的文章主要介绍了Git(四):远程仓库的搭建、获取与更新。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1、搭建远程仓库

1.1 github 创建 Repository

2、获取远程仓库

2.1 克隆现有的仓库

2.2 在现有目录中初始化仓库

3、更新提加到仓库

3.1 记录每次更新到仓库

3.2 检查当前文件状态

3.3 跟踪新文件

3.3.1 查看跟踪的文件

3.4 暂存已修改文件

3.5 状态简览

3.6 忽略文件

3.7 查看已暂存和未暂存的修改

3.8 提交更新

3.9 跳过使用暂存区域

3.10 移除文件

3.11 移动文件


1、搭建远程仓库

1.1 github 创建 Repository

在 github.com 中通过 New repository 创建仓库 git-demo,只输入了仓库名称,其他均为默认值,未进行设置。

Git(四):远程仓库的搭建、获取与更新

2、获取远程仓库

    有两种取得 Git 项目仓库的方法。

  1. 从一个服务器克隆一个现有的 Git 仓库;

  2. 在现有项目或目录下导入所有文件到 Git 中。

2.1 克隆现有的仓库

    如果想获得一份已经存在了的 Git 仓库的拷贝,就需要用到命令 git clone 而非 git checkout ,这是区别于其他版本控制系统的一个重要特性,Git 克隆的是该仓库服务器上的几乎所有数据,而不是仅仅复制完成你的工作所需文件,默认配置下远程 Git 仓库中的每一个文件的每一个版本都将被拉取下来。

git clone https://github.com/**/git-demo1024.git

远程克隆时,自定义本地仓库名字 【 git-demo 】:

git clone https://github.com/**/git-demo1024.git git_pratice1024

// 指定拉取 branch 分支下的代码
$ git clone -b branch git@github.com:**/git-demo0823.git

Git(四):远程仓库的搭建、获取与更新

2.2 在现有目录中初始化仓库

    如果不克隆现有的仓库,而是打算使用 Git 来对现有的项目进行管理。

git init

Git(四):远程仓库的搭建、获取与更新

该命令将创建一个名为 .git 的子目录,该目录还有初始化的 Git 仓库中所有的必须文件,这些是仓库的骨干,但仅仅是初始化,项目里的文件还没有被跟踪。

    如果是在一个已经存在文件的文件夹(非空文件夹)中初始化 Git 仓库来进行版本控制的话,应该开始跟踪这些文件并提交。

    通过 git add 实现对指定文件的跟踪,然后 git commit 提交,假设在目录 E:\MarkText\.git 中有文件需要跟踪(版本控制),这样即得到了一个实际维护(跟踪)着若干个文件的 Git 仓库。

git add C、C++/C/C\ 标准库.md
git commit -m 'initial markdown version'

Git(四):远程仓库的搭建、获取与更新

3、更新提加到仓库

3.1 记录每次更新到仓库

    建立好了现有的 Git 仓库(git-demo1024.git),并从这个仓库中取出了所有文件的工作拷贝。 接下来,对这些文件做些修改,在完成了一个阶段的目标之后,提交本次更新到仓库。

    工作目录下的每一个文件都不外乎这两种状态:已跟踪或未跟踪。

已跟踪的文件:被纳入了版本控制的文件,在上一次快照中有它们的记录,在工作一段时间后,它们的状态可能处于未修改,已修改或已放入暂存区。

初次克隆某个仓库的时候,工作目录中的所有文件都属于已跟踪文件,并处于未修改状态

未跟踪文件:既不存在于上次快照的记录中,也没有放入暂存区。

    编辑过某些文件之后,由于自上次提交后对它们做了修改,Git 将它们标记为已修改文件。我们逐步将这些修改过的文件放入暂存区,然后提交所有暂存了的修改,如此反复。

    生命周期如下:

Git(四):远程仓库的搭建、获取与更新

3.2 检查当前文件状态

用 git status 命令查看哪些文件处于什么状态:

// 获取文件状态
git status

Git(四):远程仓库的搭建、获取与更新

    说明所有已跟踪文件在上次提交后未被更改过。此时,还表明了当前目录下没有出现任何处于未跟踪状态的新文件,同时显示,当前所在分支同远程服务器上对应的分支没有偏离,默认分支名 master

    在项目下创建一个新的 mytext.txt 文件。 如果之前并不存在这个文件,使用 git status 命令,将看到一个新的未跟踪文件:

// 编写并写入
echo 'my first Git control file' > mytext.txt
git status

Git(四):远程仓库的搭建、获取与更新

在之前的快照(提交)中没有这些文件:Git 不会自动将之纳入跟踪范围。

3.3 跟踪新文件

使用命令 git add 开始跟踪一个文件,

再运行 git status 命令,会看到 mytext.txt 文件已被跟踪,并处于暂存状态:

// 跟踪文件
git add mytext.txt
git status

Git(四):远程仓库的搭建、获取与更新

显示在 Changes to be committed 下面的文件,就说明是已暂存状态。

3.3.1 查看跟踪的文件

$ git ls-tree -r master --name-only

Git(四):远程仓库的搭建、获取与更新

3.4 暂存已修改文件

  1. 修改一个已被跟踪的文件,打开文件 mytext.txt,命名为 remind.md并编辑其中的内容,然后运行 git status 命令:Git(四):远程仓库的搭建、获取与更新

显示在 Changes not staged for commit 这行下面,说明已跟踪文件的内容发生了变化,但还没有放到暂存区。要暂存这次更新,需要运行 git add 命令。

git add是个多功能命令【添加内容到下一次提交中】:

  • 可以用它开始跟踪新文件;

  • 把已跟踪的文件放到暂存区;

  • 合并时把有冲突的文件标记为已解决状态等。

   2. 运行 git add 将“remind.md”放到暂存区,然后再看看 git status 的输出:

git add remind.md
git status

   3. 现在两个文件都已暂存,下次提交时就会一并记录到仓库。此时我们再进行编辑文件内容并检查状态:

Git(四):远程仓库的搭建、获取与更新

    现在 remind.md 同时出现在暂存区和非暂存区。实际上 Git 只是暂存了运行 git add 时的版本, 如果现在提交,remind.md 的版本是最后一次运行 git add 命令时的那个版本,而不是运行 git commit 时,在工作目录中的当前版本。

当运行 git add 过后又作了文件修订,需要重新 git add 暂存最新版本。

3.5 状态简览

git status 输出十分详细,但有些繁琐。 使用 git status -s 或 git status --short 命令,将得到一种更为紧凑的格式输出。 运行 git status -s,状态报告输出如下:

$ git status -s
 M README.md
MM Rakefile
A  lib/git.rb
M  lib/simplegit.rb
AD mytext.txt
?? LICENSE.txt

标记:

  • ?? : 新添加的未跟踪文件;

  • A : 新添加到暂存区中的文件;

  • M : 修改过的文件;

  • D : 删除过的文件;

  • MM :在右边的 M 表示该文件被修改了但是还没放入暂存区,在靠左边的 M 表示该文件被修改了并放入了暂存区。

3.6 忽略文件

    一般总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。

在这种情况下,我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件模式:

$ cat .gitignore
*.[oa]
*~
  1. 忽略 .o 或者 .a 结尾的文件(编译过程中出现的类对象文件和存档文件);

  2. 忽略以 ~ 波浪符结尾的文件(副本文件);

  3. 可能还需要忽略 logtmp 或者 pid 目录,以及自动生成的文档等等;

文件 .gitignore 规范如下:

  • 所有空行或者以 # 开头的行会被 Git 忽略;

  • 可以使用标准的 glob 模式匹配;

  • 匹配模式可以以 / 开头防止递归;

  • 匹配模式可以以 / 结尾指定目录;

  • 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号 ! 取反。

glob 模式:shell 模式所使用的简化了的正则表达式;

  • * :匹配零个或多个字符;

  • [] :匹配任何一个列在方括号中的字符;

  • ? :匹配一个任意字符;

  • [ - ] :所有在这两个字符范围内的都可以匹配;( [a-z] )

  • ** :匹配任意中间目录

3.7 查看已暂存和未暂存的修改

    当前做的哪些更新还没有暂存? 有哪些更新已经暂存起来准备好了下次提交?

尽管 git status 已经通过在相应栏下列出文件名的方式回答了这个问题,git diff 将通过文件补丁的格式显示具体哪些行发生了改变。

    修改文件后,先不暂存,运行 git status

Git(四):远程仓库的搭建、获取与更新

    要查看尚未暂存的文件更新了哪些部分,不加参数输入 git diff

git diff 本身只显示尚未暂存的改动,而不是自上次提交以来所做的所有改动。

绿色 + 号:表示添加;

红色 - 号:表示删除。

Git(四):远程仓库的搭建、获取与更新

用 git diff --cached 查看已经暂存起来的变化:(--staged )

Git(四):远程仓库的搭建、获取与更新

通过图形化的方式或其它格式输出方式的话,可以使用 git difftool 命令来用 Araxis ,emerge 或 vimdiff 等软件输出 diff 分析结果。

使用 git difftool --tool-help 命令来看你的系统支持哪些 Git Diff 插件。

3.8 提交更新

    准备提交前,先用 git status 看下,是不是都已暂存起来了,如果没有暂存起来则要先使用命令:git add .将所有文件暂存起来, 然后再运行提交命令 git commit

$ git status
$ git add .
$ git commit

这种方式会启动文本编辑器以便输入本次提交的说明。

默认会启用 shell 的环境变量 $EDITOR 所指定的软件,一般都是 vim 或 emacs

使用 git config --global core.editor 命令设定自定义编辑软件。

可以在 commit 命令后添加 -m 选项,将提交信息与命令放在同一行,如下所示:

$ git commit -m "1025 10:15 commit info"
[main (root-commit) 57cc4a2] 1025 10:15 commit info
 2 files changed, 2 insertions(+)
 create mode 100644 mytext.txt
 create mode 100644 remind.md

    提交后会显示,当前是在哪个分支(main)提交的,本次提交的完整 SHA-1 校验和是什么(57cc4a2),以及在本次提交中,有多少文件修订过,多少行添加和删改过。

提交时记录的是放在暂存区域的快照。

任何还未暂存的仍然保持已修改状态,可以在下次提交时纳入版本管理。

每一次运行提交操作,都是对你项目作一次快照,之后可回到这个状态,或者进行比较。

3.9 跳过使用暂存区域

    在提交的时候,给 git commit 加上 -a ,Git 就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤:

$ git commit -a -m 'skip command submission 1025 10:30'

Git(四):远程仓库的搭建、获取与更新

3.10 移除文件

    从 Git 中移除文件,就必须要从已跟踪文件清单中移除(准确来说是在暂存区中),然后 commit 。通过 git rm 连同从工作目录中删除文件,之后也不会重新出现在未跟踪文件清单里了。

  • 手工移除文件时,git status 时会显示:
Changes not staged for commit // 未暂存清单

    下次 commit 则该文件就不会再纳入版本管理了。

  • 移除文件之前,若修改过且也已经放到暂存区了,则必须使用强制移除选项 -f (force),这是一种安全特性,用于防止误删还没有添加到快照的数据,这样的数据不能被 git 恢复。

  • 从暂存区移除文件时,(忘记添加 .gitignore 文件)若希望保留在当前工作目录,即文件保留在磁盘,且不想让 Git 继续跟踪,使用 --cached 选项:

# 仅仅删除暂存区的文件
$ git rm --cached mytext.txt
# 删除工作区和暂存区中的文件
$ git rm -r mytext.txt

git rm 后面可以列出文件或指定目录,也可以使用 glob 模式:

# 文件模式扩展匹配方式,删除所有 .log 文件
$ git rm log/\*.log
# 移除 ~ 结尾的文件
$ git rm \*~

3.11 移动文件

    不比其他的 VCS 系统,Git 并不显示跟踪文件的移动操作,如果在 Git 中重命名了某个文件,仓库中存储的元数据并不体现这是一次重命名操作。文章来源地址https://www.toymoban.com/news/detail-457359.html

  • 文件重命名:
$ git mv file_from file_from2

# 相当于运行以下命令:
$ mv README.md README
$ git rm README.md
$ git add README

到了这里,关于Git(四):远程仓库的搭建、获取与更新的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • git获取本地连接远程仓库密码

    以前弄过码云的账号,之后就是用的QQ快捷登录,之前的登录密码给忘记了。今天搭建一个自动化jenkins环境,gitee设置为私人仓库,拉去代码自动编译,找不到密码。我就想到本地git一起连接过gitee远程仓库的,我就去寻找了半天,找回我的http连接密码。 弄了半天,去本地文件

    2024年01月21日
    浏览(39)
  • 新人使用Git获取远程仓库项目

    这篇git技术篇非常的简单基础,写它的原因很简单,因为现在很多的年轻人都很浮躁,刚入门就想学最牛x的,看不起基础的一些技术,比如说git操作、Linux基础命令,编程基础啥的。我身边有很多这样的年轻人,整天大数据ChatGPT,人工智能啥的,不注重基础能力的培养。拿网

    2023年04月09日
    浏览(23)
  • Git如何搭建远程仓库

    Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。这就需要一台电脑充当服务器的角色,每天24小时开机,其他每个人都从这个“服务器”仓库克隆一份到自己的电脑上,并且把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交。 那么如

    2024年02月07日
    浏览(25)
  • git 一套代码关联多个远程仓库(可同步更新到多个,也可一个一个更新)

    本文主要讲述在平时开发中,一份代码可能有多份远程仓库的情况下,需要更新到不同的仓库 以及 同步更新到所有的仓库 提示:这里举的例子在上面的基础上修改,也可在关联远程仓库时,跳到第二步 提示:这里关联的仓库名称都是一样的

    2024年02月16日
    浏览(69)
  • 搭建Git远程仓库详细步骤(保姆级)

    简单说一下Git,它是分布式版本控制工具,分布式相对于集中式可以这样理解,集中式有一个服务器(典型的SVN),我们在自己电脑上编辑完成的版本上传到服务器,版本V1-V2-V3这样叠加,当服务器出现问题我们就没法迭代版本;而Git作为分布式控制,它在本地有一个临时库

    2024年02月02日
    浏览(27)
  • 使用Gitea搭建自己的git远程仓库

    为什么需要自建仓库 原因只有一个:折腾。其实国内的码云加上github已经足够用了。 官方原话 Gitea 的首要目标是创建一个极易安装,运行非常快速,安装和使用体验良好的自建 Git 服务。我们采用 Go 作为后端语言,这使我们只要生成一个可执行程序即可。 并且他还支持跨平

    2024年02月03日
    浏览(34)
  • 【git 将当前仓库和远程仓库合并,并且远程仓库替代本地的修改】

    要将当前的本地仓库与远程仓库进行合并,你可以按照以下步骤进行操作: 首先,确保你已经将远程仓库的最新更改拉取到本地仓库中。可以使用以下命令: 这将获取远程仓库的最新状态到你的本地仓库,但并不会直接合并它们。 然后,你可以切换到你希望合并的分支(比

    2024年04月12日
    浏览(39)
  • 使用Git将本地文件提交到远程仓库 使用Git将本地文件提交到远程仓库

    使用Git将本地文件提交到远程仓库 现在要将本地代码推到git远程仓库保存,可以提交和拉取操作 本地项目已经创建 git远程仓库已经建(github、gitee都行) 操作如下: 1、(先进入项目文件夹)通过命令 git init 把这个目录变成git可以管理的仓库 git init 2、把文件添加到版本库中,使

    2024年02月13日
    浏览(35)
  • Git fork了别人的仓库,别人的仓库有更新,我们如何同步这个更新

    要同步在GitHub上fork的别人的仓库的更新,可以按照以下步骤进行操作: 配置远程仓库地址: 在命令行中,进入你fork的仓库的本地目录,并添加一个指向原始仓库(即你fork的仓库来源)的远程仓库地址。通常,原始仓库会被称为\\\"upstream\\\"(上游仓库)。假设原始仓库的URL为

    2024年02月08日
    浏览(43)
  • git本地仓库与远程仓库同步

      在学习和工作中,我们经常遇到这样的场景,我们已经在本地创建了一个git仓库,并添加了文件和修改记录。后面你又想在github或者gitlab上新建一个空白git仓库,并且让这2个仓库进行远程同步并且保存之前本地仓库的修改记录。这样一来github或者gitlab上的仓库即可作为备份

    2024年02月12日
    浏览(49)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包