| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> 05_Git命令详解 - CRUD -> 正文阅读 |
|
[开发工具]05_Git命令详解 - CRUD |
Git高层命令 - CRUD初始化仓库
????????解析:要对现有的某个项目开始用 Git管理,只需到此项目所在的目录,执行:git init ????????作用:初始化后,在当前目录下会出现一个名为 .git的目录,所有Git需要的数据和资源都存放在这个目录中。不过目前,仅仅是按照既有的结构框架初始化好了里边所有的文件和目录,但我们还没有开始跟踪管理项目中的任何一个文件。 记录每次更新到仓库?????????工作目录下面的所有文件都不外乎这两种状态:已跟踪或未跟踪。 ????????已跟踪的文件是指本来就被纳入版本控制管理的文件,在上次快照中有它们的记录,工作一段时间后,它们的状态可能是已提交,已修改或者已暂存。 ????????所有其他文件都属于未跟踪文件。它们既没有上次更新时的快照,也不在当前的暂存区域。 ????????初次克隆某个仓库时,工作目录中的所有文件都属于已跟踪文件,且状态为已提交;在编辑过某些文件之后,Git将这些文件标为已修改。我们逐步把这些修改过的文件放到暂存区域,直到最后一次性提交所有这些暂存起来的文件。 ????????使用 Git时的文件状态变化周期如下图所示: 检查当前文件状态
????????作用:确定文件当前处于什么状态 初始化仓库后的文件????????如果在初始化仓库之后立即执行此命令,会看到类似这样的输出:
????????这说明你现在的工作目录相当干净。换句话说,所有已跟踪文件在上次提交后都未被更改过。此外,上面的信息还表明,当前目录下没有出现任何处于未跟踪的新文件,否则 Git会在这里列出来。最后,该命令还显示了当前所在的分支是 master,这是默认的分支名称,实际是可以修改的,现在先不用考虑。 未跟踪文件????????如果创建一个新文件 README,保存退出后运行 git status会看到该文件出现
????????在未跟踪文件列表中:
????????在状态报告中可以看到新建的 README文件出现在“Untracked files”下面。未跟踪的文件意味着 Git在之前的快照(提交)中没有这些文件;Git不会自动将之纳入跟踪范围,除非你明明白白地告诉它“我需要跟踪该文件”,因而不用担心把临时文件什么的也归入版本管理。 跟踪新文件(暂存)
????????作用:跟踪一个新文件 ????????再次运行 git status命令,会看到 README文件已被跟踪,并处于暂存状态:
????????只要在 “Changes to be committed”这行下面的,就说明是已暂存状态。 ????????如果此时提交,那么该文件此时此刻的版本将被留存在历史记录中。在git add后面可以指明要跟踪的文件或目录路径。如果是目录的话,就说明要递归跟踪该目录下的所有文件。(译注:其实 git add的潜台词就是把目标文件快照放入暂存区域,也就是 add file into staged area,同时未曾跟踪过的文件标识为已暂存。 修改已暂存文件?????????现在 README文件都已暂存,下次提交时就会一并记录到仓库。假设此时,你想要在 README里再加点注释,重新编辑存盘后,准备好提交。不过且慢,再运行 git status看看:
????????README文件出现了两次!一次算已修改,一次算已暂存,这怎么可能呢?好吧,实际上 Git只不过暂存了你运行 git add命令时的版本,如果现在提交,那么提交的是添加注释前的版本,而非当前工作目录中的版本。所以,运行了 git add之后又作了修订的文件,需要重新运行 git add把最新版本重新暂存起来:
查看已暂存和未暂存的更新????????实际上 git status的显示比较简单,仅仅是列出了修改过的文件,如果要查看具体修改了什么地方,可以用 git diff命令.这个命令它已经能解决我们两个问题了:当前做的哪些更新还没有暂存?有哪些更新已经暂存起来准备好了下次提交? ????????1.当前做的哪些更新还没有暂存?, ????????????????命令:git diff(不加参数直接输入 git diff) ?????????2.有哪些更新已经暂存起来准备好了下次提交? ????????????????命令: git diff --cached 或者 git diff --staged(1.6.1以上) 提交更新????????当暂存区域已经准备妥当可以提交时,在此之前,请一定要确认还有什么修改过的或新建的文件还没有 git add过,否则提交的时候不会记录这些还没暂存起来的变化。所以,每次准备提交前,先用 git status看下,是不是都已暂存起来了,然后再运行提交命令 git commit。
????????注意:这种方式会启动文本编辑器以便输入本次提交的说明默认的提交消息包含最后一次运行 git status的输出,放在注释行里,另外开头还有一空行,供你输入提交说明。你完全可以去掉这些注释行,不过留着也没关系,多少能帮你回想起这次更新的内容有哪些。 ????????另外也可以用 -m参数后跟提交说明的方式,在一行命令中提交更新:
? ? ? ? 提交时记录的是放在暂存区域的快照,任何还未暂存的仍然保持已修改状态, ????????可以在下次提交时纳入版本管理。每一次运行提交操作,都是对你项目作一次快照, 乱码解决: ????????直接右键,选择Options…-->Text-->Locale里面选择zh_CN,Character set选择UTF-8; ????????window -->UI language-->zh_CN; ????????git config --global i18n.commitencoding utf-8 ????????git config --global i18n.logoutputencoding utf-8/gbk 跳过使用暂存区域????????尽管使用暂存区域的方式可以精心准备要提交的细节,但有时候这么做略显繁琐。Git提供了一个跳过使用暂存区域的方式,只要在提交的时候,给git commit加上 -a选项,Git就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add步骤
移除文件常规删除????????手动删除(或rm命令)工作区文件,删除相对于git来说是修改操作,但是它不会删除本地库的对象,反而在本地库进行了新增(添加了一个tree对象和commit对象) ?????????注:如果想要通过git重新得到删除的文件,后续再讲 git命令删除????????要从 Git中移除某个文件,就必须要从已跟踪文件清单中注册删除(确切地说,是在暂存区域注册删除),然后提交。可以用 git rm命令完成此项工作,并连带从工作目录中删除指定的文件,这样以后就不会出现在未跟踪文件清单中了。 ?????????1、运行 git rm删除工作目录文件,并记录此次移除文件的操作(将修改添加到暂存区) ????????2、提交的时候,该文件就不再纳入版本管理了 文件改名常规改名git命令改名
查看历史记录
????????在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 ????????完成这个任务最简单而又有效的工具是git log命令
????????默认不用任何参数的话,git log会按提交时间列出所有的更新,最近的更新排在最上面。正如你所看到的,这个命令会列出每个提交的 SHA-1校验和、作者的名字和电子邮件地址、提交时间以及提交说明。
?????????多屏显示控制方式: ????????空格:向下翻页 ????????b:向上翻页 ????????上箭头/下箭头:向上一行/向下一行 ????????q:退出 总结
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/23 19:59:13- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |