git的一些补充点

时间:2022-08-28 15:39:54
  1. git rm和 rm的区别
    git rm是删除文件, 同时加入到git的跟踪管理中,做一个登记,那么在git commit的时候, 会把这次删除作为一次修改提交上去, 否则, 在 git log中你就看不到 这次修改提交.
    rm仅仅只是 文件管理器的 删除 文件的命令, 从 硬盘上删除, 但是没有在git中做登记.记录, 所以 在git commit的时候,不会把这次删除记录操作 提交到local server上
    那么如果 已经 用 rm删除文件了,又 要 git commit的话, 可以在 commit的时候, 带上 -a选项: git commit -am 'msg...

  2. git rm --cache file/path
    --cache是指 只是从 缓存区 stage区域 删除, 并不从工作区中删除文件.
  3. git commit -am 'xxx'
    -m是 msg --message是消息的意思,是对该次提交所作的注释
    -a 是 --all 是对 所有做了修改和删除的文件进行 自动 stage, 但是对 新文件(没有add的新文件)没有影响
    git -a: tell command to automatically stage files that have been modified and deleted, but files you have not told git about are not affected.
    也就是, 如果 你只是用 rm命令 而不是用git rm 删除文件, 那么你就可以有两种方式进行处理:
    第一, 再次用 git rm删除, 最后, commit
    第二, 不用git rm了, 在提交的时候, 带上 -a选项. 即 git commit -am '...'

因为对文件的编辑方式有 新建 new, 修改modify, 删除delete几种, 当然你可以把所有的文件都 add到stage中, 然后commit, 也可以 只add新建文件, 而对modify和delte的文件, 不add, 在commit的时候, 带上 -a选项就可以自动 将它们提交到stage了.

git push -u origin master:

"origin master" 是指推送到origin仓库的 master分支
-u是指默认, 绑定, 将当前分支推送到 默认的/绑定的远程仓库上的对应分支.
当第一次使用了 -u选项后, 以后 推送的话, 就不再需要写 origin master了.直接使用 git push

git 从2.0之后, 默认的推送选项是 --simple 不再是2.0之前的--match, 如果是 --match表示的是将当前本地分支 推送到 所有匹配的 远程仓库的对应分支.

git push 是指, 如果当前分支和 多个(远程主机上的仓库分支)之间 存在"追踪" 关系, 那么指定-u会绑定一个默认主机, 以后就可以git push而不用任何参数推送到 默认的 远程仓库上去了 . git 就是用来 建立/保持/管理 这种 追踪关系的! 通过这种 追踪关系 来保持对文件/工程 (所谓工程, 就是 在一个项目中, 所有文件/多种资源的 文件的集合 包括这些文件和它们之间的 相对依赖关系的 总称) 的关联, 所以, 如果你要 保持 版本跟踪, 那么 就告诉 git吧, 让git 来为你 管理 你的文件或工程!!!

  1. git brach -avvl
    -a显示所有的分支,
    -v显示每次提交的详细信息
    -l显示每个分支的对应信息等
  • git branch -avv, 注意这里是两个-v, 两个小写的v, 不是 -v-V, 没有 大V, 大V是错误的.
  1. git log
    显示所有的提交记录

git add -A
不需要一个一个地添加untracked文件, 可以一次性地添加所有的文件.


关于git 的使用的一个详细参考地址: https://blog.csdn.net/gemmem/article/details/7290125

其中 很重要的一个概念是 : git仓库在哪里,和目录的关系是怎样的?

  • git仓库就是那个 隐藏目录 .git
  • 仓库和工作目录的位置关系: 能否 将一个目录下的 git仓库, 和 本地机器上 另一个不同位置处的 目录(即 工作目录)之间建立关联, 并进行add和commit 等 跟踪/追踪呢?
    不能: 因为, git仓库和 你说的那个要与之建立关联/联系的那个目录(实际上就是 工作目录) 之间 是 紧密相连的, 它们之间是不能分开的,不能分割开的,事实上, .git仓库就 存在于 工作目录下! .git仓库 是 工作目录下的 一个 隐藏子目录.
    所以, 比如, 如果你想对 www/html网站目录进行git跟踪管理, 就应该直接在 html目录下运行 git init命令, 这样在 www/html目录下(工作目录) 就生成一个 .git的 版本管理仓库了.

  • git 命令是针对某一个 仓库而言的. repo命令是针对某一个项目而言的. 因为一个项目中 可以包含多个 仓库. 所以 在具体的一个仓库中 , 就使用 git命令
  • git 的帮助命令是: git help 某某命令 这里git 就相当于一个 总的 命令.... 字命令就是help命令....

===============

要提交git commit, 必须告诉tell git who are you. 就需要配置git 使用 命令 git config 来配置 user. 其中 --global 和 --local选项指定 该user配置 是全局的(每个/仓库) 还是只用于当前这个仓库的.

全局的git配置是 在 ~/.gitconfig 文件中, 如果是 当前仓库的配置文件, 则是: .git/config 文件 注意两个配置文件的名称不同.
配置 user 对象, 会有一个 [user]节. 如果是 配置 当前仓库的话, 是指 该user 只用于 当前仓库的提交.

在git提交时, 会发现, 即使某些文件本身 并没有改变, commit 时, 仍然提示有所改变,"... files changed, .. . insertions" 是 由于 在 当前仓库的 配置文件.git/config 中设置 了 core.filemode=true. 意思是指 将工作目录中的文件 提交到 stage的时候, 都改变成 100644的模式:

100表示 文件的类型是 "普通文件" regular file, 040是目录, 120 是 symbolic link 等
644是文件的模式.
所以 是由于文件模式发生了改变, 导致文件在 commit的时候, 发生了改变, 要使文件不发生改变, 只要修改 core.filemode 为 false 即可!

git config 命令就是 对 git 配置文件 进行操作的命令, 你可以用 git config -e 打开编辑器来编辑这个config文件. 也可以用 --add, --unset , --replace, --replace-all, --get等选项来操作配置文件, 但是都要通过 config命令来进行, 不能直接用 git get core.filemode等类似命令来 操作config文件, 因为 只有git config命令, 没有 git get命令!

==============

git的版本跟踪/追踪, 是非常尊重用户的, 如果你不想要这个 版本仓库了, 不想再对工作目录进行版本管理了, 你可以删除 这个 git仓库: 只需要一步操作就可以了: 删除 工作目录下的 隐藏文件夹 .git 这个目录就可以了.

如同在汉语中, 有多音字和相同发音的字, 英语中同样有很多的同音字. 比如ge音: 有 歌, 哥, 各, 葛, 戈等的发音. 但是要通过 语境上下文来区分. 同样的, 英语中也有很多同音字, 所以, 听英语 也不是 单独的听一个一个的单词的~ (听单一,单独的,一个一个的单词,你是听不出是什么单词的, 因为有那么多 的同音字)也是要听词组的, 听句子的! 也是要根据 上下文的语境来进行区分和读取/理解的...

clothes: 不能用单数和数词: 比如: the clothes are smart. 不能说 five clothes. 通常只说 those clothes, 或用数词 : a T-shirt, two sweaters
而 clothing 是一个集合名词, 比如people 一样, 比如一件衣服要说: an article of clothing, a piece of clothing.

dress: 穿衣服要用被动语态,比如: She is dressed in her everyday clothes.
clothes: 中的es不发iz, 而是发z音,所以是 【kl2uz】


git add 的好处还有一个: 在切换分支branch的时候, 这些 git add 暂存区 会一起 切换过去!

git branch 分支号 <之前的某次提交的id号>, 这个命令的作用是: 基于之前的 某次 提交commit id , 回滚到 之前的中间的某次提交, 并建立一个 分支,(回滚到之前的某次提交, 并且创建分支的好处是: 回滚后,不必覆盖 master分支. 从而起到 "另存为" 一个 提交点(快照) 的作用)

感觉 git 跟 一些管理 : 操作系统 复原/回滚/还原精灵的 有点类似, 可以任意的 在 某个 时间节点上, 创建快照, 然后可以 恢复到这些时间节点上, 而其他的保存的 时间节点 快照仍然存在!
git branch 新的分支号 : 就是基于 之前的某个分支号 创建新的 分支号.
也可以基于某个分支 , 创建新的分支! git branch new_branch old_branch

git的一些补充点的更多相关文章

  1. Git命令汇总&lpar;补充篇&rpar;

    上一篇<Git命令汇总基础篇>总结了使用Git的基本命令,这一篇作为补充主要给大家讲一些平时使用中的技巧和总结 . 学会了这些命令,已经基本解决了使用Git中大部分问题. 1.gitign ...

  2. &lbrack;Git&rsqb; 010 对 &lbrack;Git 008&rsqb; 的补充:实现 commit 不计次数

    回顾:[Git] 008 status 与 commit 命令的补充 的 "2.4" [Git 008] 的 "2.4" 使用 git commit --ame ...

  3. Git理论知识补充

    转自: http://www.cnblogs.com/hnrainll/archive/2012/11/13/2768003.html 对于任何一个文件,在 Git 内都只有三种状态:已提交(comm ...

  4. git 命令&lpar;补充篇&rpar;的本质理解

    1 标签, git tag tag_name SHA 本质: 在某次commit 上打上标签tag_name ,标签在代码库中起着"锚点"的作用. 注意: commit 由 SHA ...

  5. Git 简易使用指南及补充

    Git最简易的使用指南 助你开始使用 git 的简易指南,木有高深内容,;) 安装 下载 git OSX 版 下载 git Windows 版 下载 git Linux 版 创建新仓库 创建新文件夹, ...

  6. &lbrack;Git&rsqb; 008 status 与 commit 命令的补充

    本文的"剧情"承接 [Git] 007 三棵树以及向本地仓库加入第一个文件 1. 对 "status" 的补充 1.1 "status" 有 ...

  7. git使用和理解之一(不含分支)

    0.前言 Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库 工作区和暂存区: 我们写代码的地方就是工作区,代码写完后, ...

  8. git - 版本控制器&lpar;本地仓库&rpar;

    本地创建仓库,然后进行管理.提交到本地仓库(不需要网络),提交到远程仓库(需要网络) 相对于svn为克隆方式,赋值的是整个仓库,svn只是复制的代码.   1.电脑新创建一个”本地仓库”空文件夹 2. ...

  9. webstorm 如何配置git

    2016-09-22 15:00:25 补充js 操作后 发现工具自动生成了两个文件,如果提交到git上 会造成不必要的麻烦,看看怎么去掉产生这个的原因吧! 去掉对应的监听:http://fronte ...

随机推荐

  1. 记一次MySql入库后,文本出现乱码的问题

    最近采用ADO.NET开发了一个工具,解析了一条如下的日志并入库(MySql) -- :: [INFO] roleName=♣丶伊诺,orderId=,price= 发现入库后的roleName中的♣ ...

  2. mysql if条件

    #if表达式 SELECT reg_no, IF(reg_no='718170554','黄色宾利','红色宾利') FROM car WHERE reg_no IN ('718170554','12 ...

  3. Eclipse扩展点

    ~~ org.eclipse.ui.actionSets(IWorkbenchWindowActionDelegate)||  org.eclipse.ui.commands 这两个扩展点都是对菜单进 ...

  4. asp&period;net MVC 路由机制 Route

    1:ASP.NET的路由机制主要有两种用途: -->1:匹配请求的Url,将这些请求映射到控制器 -->2:选择一个匹配的路由,构造出一个Url 2:ASP.NET路由机制与URL重写的区 ...

  5. PHP&plus;nginx 启动后访问超时

    场景 在Windows上, nginx配置并启动后, 访问报504超时 解决 很尴尬, php-cgi没启动 php-cgi -b

  6. Git官方推荐用书

    用Git看了N多的Blog, 乱七八糟. 官方的推荐用书写得最好,最权威.还可以下载pdf.记录一笔. https://git-scm.com/book/zh/v2/

  7. vsCode工具做react开发,几个常用插件

    一.环境准备: 1.下载安装VSCode,Node.js,Yarn 2.打开命令行终端或powershell,输入yarn global add create-react-app安装react的脚手架 ...

  8. sed 正则的一个小问题

    有一段类似以下的文本 aabbccc test[3307]112323553-66778tp aooppx69tp ooppsg aabbccc test[3307]1127233-6674tp bo ...

  9. JSP中使用JDBC连接MySQL数据库的详细步骤

    1,首先在自己新建的项目文本框中输入Web Project的名称,然后单击下一步. 2,继续单击下一步 3,把Generate web.xml deployment descriptor复选框勾上. ...

  10. Jmeter使用笔记之组件的作用域

    以前一直使用loadrunner,最近入职新公司后需要使用jmeter,这里把使用过程中出现的一些问题进行总结,同时会和自己使用loadrunner的情况相比较,以后也会不断总结,GO! 一.组件的作 ...