Git修改一个文件并提交到仓库

前言

可跟踪改动内容的文件有哪些?

  • 所有的版本控制系统,跟踪的是什么?——跟踪文本文件的改动(TXT、HTML)
    • 版本控制系统可以告诉你每次对文本的改动,比如在第5行增加/删除了一个单词“Linux”,
    • 所以图片、视频、word这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化。例如只知道图片大小从100KB改成了120KB,但到底改了啥是不知道的

编码选择

  • 建议使用标准的UTF-8编码,所有语言使用同一种编码,既没有冲突,又被所有平台所支持。

把文件添加到仓库

仓库

仓库即版本库,repository,也就是一个目录,这个目录里面的所有文件都可以被Git管理起来。

作用:跟踪每个文件的修改、删除,以便任何时刻都可以追踪改动,甚至在必要的时候可以“还原”。

0、创建一个仓库并初始化

先在一个文件夹内单击右键,选择“Git Bash”

$ mkdir learngit
$ cd learngit
$ git init		 //初始化这个仓库learngit

这样就成功创建了一个.git的目录(这个目录是Git来跟踪管理版本库的,切勿轻易修改)

如果你没有看到.git目录,那是因为这个目录默认是隐藏的,用ls -ah命令就可以看见。

2、把文件添加到本地仓库:

$ git add readme.txt

如果是一个文件夹,则输入

git add 

3、用命令git commit告诉Git,把文件提交到仓库:

$ git commit -m "This is a commit: first try"	

提交完成

git push -u origin master

使用Windows的童鞋要特别注意:

  • 千万不要使用Windows自带的记事本编辑任何文本文件。
  • 建议使用Visual Studio Code代替记事本,不但功能强大,而且免费!
  • 原因是Microsoft开发记事本的团队使用了一个非常弱智的行为来保存UTF-8编码的文件,他们自作聪明地在每个文件开头添加了0xefbbbf(十六进制)的字符,你会遇到很多不可思议的问题。
    • 比如,网页第一行可能会显示一个“?”,明明正确的程序一编译就报语法错误,等等,都是由记事本的弱智行为带来的。

工作区、暂存区

工作区(Working Directory)

  • 就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区:

版本库(Repository)

工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD

前面讲了我们把文件往Git版本库里添加的时候,是分两步执行的:

  • 第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区
  • 第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

你可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。

过程,例:

  • 我们先在工作区编辑两个文件
  • 通过git add添加到版本库的暂存区(Stage)
  • 现在,暂存区的状态就变成这样了:

  • 执行git commit就可以一次性把暂存区的所有修改提交到分支。
  • 一旦提交后,如果你又没有对工作区做任何修改,那么工作区就是“干净”的:

管理修改小提示

第一次修改 -> git add -> 第二次修改 -> git add -> git commit

  1. 第一次修改一个文件vim test.txt
  2. git add,放到暂存区
  3. 第二次修改这个文件vim test.txt
  4. git commit,上传到分支
  5. 结果是只上传了第一次的修改文件。
  6. 即:没有被git add到暂存区的文件不会被 git commit

git初尝试
https://blog.csdn.net/ywsydwsbn/article/details/106427905#43_github_179
git菜鸟指南
https://www.runoob.com/git/git-workspace-index-repo.html

posted @ 2021-12-12 18:58  Dinesaw  阅读(947)  评论(0编辑  收藏  举报