Git学习03-----最基本的几个命令
一. 取得项目的Git仓库
有两个办法:
1.1 在工作目录中初始化新仓库
就是在现有的某个项目中执行git init后,就可以对这个项目进行git项目管理了。
1.2 从现有从库克隆
git clone [url]
通过执行上面这条命令,就可以对这个URL指定的项目进行git项目管理了。
Note:成功进行Git项目管理后,会有一个隐藏文件:.git,用于保存下载下来的所有版本记录,然后从中取出最新版本的文件拷贝
二. 跟踪修改
工作目录下的所有文件不外乎两种状态:已跟踪和未跟踪。
1. 未跟踪
假设我们建立了一个新的文件hellworld,这个时候查看git status命令,就会出现提示“nothing added to commit but untracked files present (use "git add" to track) ,意思是出现了未跟踪的文件,我们可以通过执行git add来让它成为跟踪文件。
2. 暂存已修改文件
假设helloworld已经add了,这个时候我再修改里面的内容,并git status,就会发现如下提示信息
$ git status# On branch master# Changes to be committed:# (use "git reset HEAD <file>..." to unstage)## new file: README## Changes not staged for commit:# (use "git add <file>..." to update what will be committed)# # modified: helloworld#
说明:a.txt出现在“Changes not staged for commit"下面,说明已跟踪文件的内容已经发生了变化,但是还没有放到暂存区中,要暂存这次更新,需要运行git add命令(这是个多功能命令,根据目标文件的状态不同,此命令的效果也不同:可以用它开始跟踪新文件,或者把已跟踪的文件放到暂存区,还能用于合并时把有冲突的文件标记为已解决状态等)
3. 同一个文件多次修改
假设上面的helloword.java文件已经被修改过了,且执行了git status后,是如下状态:
这个时候又再次修改,这个时候git status就会出现同一个文件的两种状态:
git add后,才会得到最新的更新,否则,直接commit的是本次更新前的那一次的修改的内容,即绿色修改部分的内容。
三. 忽略某些修改
一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。我们可以创建一个名为 .gitignore
的文件,列出要忽略的文件模式。来看一个实际的例子:
第一行告诉 Git 忽略所有以 .o
或 .a
结尾的文件。一般这类对象文件和存档文件都是编译过程中出现的,我们用不着跟踪它们的版本。第二行告诉 Git 忽略所有以波浪符(~
)结尾的文件,许多文本编辑软件(比如 Emacs)都用这样的文件名保存副本。此外,你可能还需要忽略 log
,tmp
或者 pid
目录,以及自动生成的文档等等。要养成一开始就设置好 .gitignore
文件的习惯,以免将来误提交这类无用的文件。
文件 .gitignore
的格式规范如下:
- 所有空行或者以注释符号
#
开头的行都会被 Git 忽略。 - 可以使用标准的 glob 模式匹配。
- 匹配模式最后跟反斜杠(
/
)说明要忽略的是目录。 - 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(
!
)取反。
所谓的 glob 模式是指 shell 所使用的简化了的正则表达式。星号(*
)匹配零个或多个任意字符;[abc]
匹配任何一个列在方括号中的字符(这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);问号(?
)只匹配一个任意字符;如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如 [0-9]
表示匹配所有 0 到 9 的数字)。
我们再看一个 .gitignore
文件的例子:
四. 查看已暂存和未暂存的更新
假设远程提交的内容是打印Hello World这个字符串,但是本地第一次修改后并暂存(git add)起来后,内容是:Hello World2。 这个时候又修改一次,内容是Hello World222。
1. 对比工作区(未暂存的)和已经暂存的内容差异
执行 git diff
2. 对比暂存的和上一次提交的内容的差异
执行 git diff --staged 或者git diff --cached
五. 文件提交
1. 正规流程git add, git commit提交
2. 快捷流程,可以跳过git add,但是需要添加 -a选项: git commit -a,Git 就会自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add
步骤。
六. 移除文件
git rm 添加参数选项 文件名
七. 查看提交历史
1. git log
它有很多的可选参数,比如限制在一个提交一行显示,显示的格式,显示的长度等等。
2. 使用图形化工具查阅提交历史
有时候图形化工具更容易展示历史提交的变化,随 Git 一同发布的 gitk 就是这样一种工具。它是用 Tcl/Tk 写成的,基本上相当于 git log
命令的可视化版本,凡是 git log
可以用的选项也都能用在 gitk 上。在项目工作目录中输入 gitk 命令后,就会启动图 2-2 所示的界面。
图 2-2. gitk 的图形界面
上半个窗口显示的是历次提交的分支祖先图谱,下半个窗口显示当前点选的提交对应的具体差异。
八. 撤销操作
有时候我们提交完了才发现漏掉了几个文件没有加,或者提交信息写错了。想要撤消刚才的提交操作,可以使用 --amend
选项重新提交:
$ git commit --amend
此命令将使用当前的暂存区域快照提交。如果刚才提交完没有作任何改动,直接运行此命令的话,相当于有机会重新编辑提交说明,但将要提交的文件快照和之前的一样。
启动文本编辑器后,会看到上次提交时的说明,编辑它确认没问题后保存退出,就会使用新的提交说明覆盖刚才失误的提交。
如果刚才提交时忘了暂存某些修改,可以先补上暂存操作,然后再运行 --amend
提交:
九. 远程仓库的使用
1. 查看当前的远程仓库
git remote -v命令,就可以看见:
2. 远程仓库的删除和重命名
碰到远端仓库服务器迁移,或者原来的克隆镜像不再使用,又或者某个参与者不再贡献代码,那么需要移除对应的远端仓库,可以运行 git remote rm
命令:
九. 打标签
标签作用: 在开发的一些关键时期,使用标签来记录这些关键时刻, 例如发布版本, 有重大修改, 升级的时候, 会使用标签记录这些时刻, 来永久标记项目中的关键历史时刻;
查看标签: 列出的标签安装ASCII字母顺序确定, 排序没有很明确的意义;
– 列出所有的标签 :
git tag
– 使用限定列出限定后的标签 :
git tag -l v1.*
标签分类
Git中的标签分为 轻量级标签(lightweight) 和 带注释的标签(annotated), 一般情况下推荐使用带注释的标签, 如果标签是临时的可以采用轻量级标签;
-- 轻量级标签 : 轻量级标签中的信息含量很少, 这种标签只代表某时刻代码的提交, 相当于指向这个提交的指针;
-- 带注释标签 : 这种标签是一种校验和, 包含标签名, 邮箱, 日期, 标签信息, GPG签名 和 验证, 它相当于一个对象, 封装了这些信息;
创建标签 :
– 创建轻量级标签 : 这样的标签没有附带其它的信息;
git tag tag_name
git tag v2.0
– 创建带注释标签 : -m 后跟的是注释信息, 当使用git show v2.1的时候, 会显示这个注释信息;
git tag -a v2.1 -m 'first version'
– 为之前的提交添加标签 : (直接git tag commitID 这个ID是需要打标签的那一次提交)
先使用 git log –oneline 命令列出之前的提交, 会有一个七位的十六进制数进行标记, 使用git tag -a v3.1 f1bb97a 命令即可为这个提交添加标签;
$ git log --oneline
f1bb97a first commit
git tag -a v3.1 f1bb97a
删除标签 : 使用命令 git tag -d 标签名 命令删除标签;
git tag -d v0.1
共享标签 : 即将标签提交到GitHub中;
git push origin --tags
参考文献
《Pro Git》
https://blog.csdn.net/u013372487/article/details/52937077
转载于:https://www.cnblogs.com/Hermioner/p/10061339.html
Git学习03-----最基本的几个命令相关推荐
- Git学习笔记(4)----基本操作及命令(本地仓库篇)
本篇介绍Git的基本操作及命令,学习后本篇需要达到的效果:满足日常工作使用,对每个命令及其作用有一定的了解.文章通过模拟工作流程的方式,帮助读者更好的理解每个命令的使用场景和作用,但不会单独列出每个命 ...
- Git 的安装与初次使用 —— Git 学习笔记 03
Git 的安装与初次使用 -- Git 学习笔记 03 Git 的安装与初次使用 -- Git 学习笔记 03 安装 Git 在 Linux 上安装 在 Windows 上安装 初次运行 Git 前的 ...
- 超详细的Git学习记录(Git基础内容/IDEA集成Git/GitHub/Gitee/GitLab及Centos7部署GitLab)
超详细的Git学习笔记 从B站搜到的尚硅谷视频学习了Git,记录了一下学习的内容,收获很大 学习地址: https://www.bilibili.com/video/BV1vy4y1s7k6?p=11 ...
- Git 学习札记(二)安装git以及基本操作
Git 学习札记(二) Linux上的Git基本操作 安装和使用 Git 在linux安装git的命令: sudo apt-get install git 结果如图:(为了截这个图特意卸载了又装了一遍 ...
- GIT 学习手册简介
2019独角兽企业重金招聘Python工程师标准>>> 本站为 Git 学习参考手册.目的是为学习与记忆 Git 使用中最重要.最普遍的命令提供快速翻阅. 这些命令以你可能需要的操作 ...
- Git学习系列之Git基本操作提交项目(图文详解)
前面博客 Git学习系列之Git基本操作克隆项目(图文详解) 然后可以 cd 切换到 LispGentleIntro 目录, 新增或者修改某些文件.这里只是模拟一下操作, 实际情况可能是 使用 Ecl ...
- Git学习系列之Windows上安装Git之后的一些配置(图文详解)
不多说,直接上干货! 前面博客 Git学习系列之Windows上安装Git详细步骤(图文详解) 第一次使用Git时,需要对Git进行一些配置,以方便使用Git. 不过,这种配置工作只需要进行一次便可, ...
- Git 学习第二天(一)
继续昨天的学习. 回顾一下,昨天我们安装了git 并创建了登录名及邮箱,还向git仓库提交了一个readme.txt的文本文件 下面,我们来修改下这个文件,将内容改为 Git is a distrib ...
- 小白也能看懂的git入门实操[狂神聊git学习笔记]
写在前面:本文为狂神聊git视频的学习笔记,仅供个人学习使用,如有侵权,请联系删除. 视频链接:https://www.bilibili.com/video/BV1FE411P7B3 文档参考:htt ...
- Mac~git学习和应用需要注意的几个点
Git学习推荐网站:廖雪峰-Git教程 - 廖雪峰的官方网站,通俗易懂,简单粗暴,就是平俗的语言,好懂.粗暴的那种 git学习进阶-国外经典git学习网站:Git - Book 目录 1. 全局配置和 ...
最新文章
- 科学革命与科学教科书
- 白盒测试实践作业任务分配
- 一场由nginx优化引起的tcp/ip及tcpdump研究
- 政府、学校、企业都需要的轻量级数据填报方案
- 基于小程序·云开发构建高考查分小程序丨实战
- 线性表顺序表---逆置所有元素
- Batch批量替换hosts
- Mysql也可以联合多表更新和删除
- java ant教程_ant教程(三) ant入门
- centos配置虚拟主机
- 综合富贵论坛,富贵网,新老富贵的简单解释
- 一起来学习Windows Mobile 6.5
- 【Day5.1】在坑人的免税店King Power蹭午餐
- 首都师范 博弈论 2 1 1占优策略与占优策略均衡
- 低频理疗按摩仪8种常用基本波形
- python 逻辑回归 复杂抽样_逻辑回归(Logistic Regression) ----转载
- 多态的概念,多态的原理,多态解决什么问题
- greasemonkey入门
- SER 语音情感识别-论文笔记1
- Win10笔记本WiFi连接选项不见了?