git学习笔记?git 在 push/push to 时需要使用到 user.name 和 user.email,一般通过git bash 来进行配置或修改。这里需要注意的是,该命令只能用于初次配置user.name/email,如果不小心配置错误,或者重复配置,那么,git学习笔记?一起来了解一下吧。
在前面的文章中,我们学习了标签、分支、和合并。现在我们将学习Git中另外的三个命令 git commit --amend,git revert,git reset 。下面简单的介绍中几个命令的功能:
在平时的项目开发中,有时候我们可能提交完相应文件后,才发现漏掉了几个文件没有添加,或者我们 commit 消息并没有书写完整或有错别字。那这个时候我们该整么办呢?或许我们会执行一个新的提交来添加我们遗漏的内容,但是这样一点都不优雅!!在Git中为我们提供了带有--amend选项的提交来修改我们 最近 的提交:
这里大家可能还是不是很明白,我们看下面这个简单的例子:
在上述例仓库中我们创建了一个 commit ,该 commit 消息并没有书写完整。这个时候我们想修改它,那么我们就可以使用命令git commit --amend,当输入该命令后,我们能得到如下弹窗:
这个时候,我们就可以完善该 commit 信息,然后皮扰保存并离开。这里我改成了删除了多余的语句,这时我们再使用git log命令,我们会发现我们的 commit 消息已经被更改了。如下所示:
当然在上述例子中,我们只是简单的修改了 commit 信息,并没有修改或添加一些新的文件,如果你修改或添加了新的文件,并想将这些修改的文件添加到最近的 commit 中去的话,那么你可能要经历以下步骤:
在实际的项目中,如果你想修改最近的 commit ,那么你需要使用git commit --amend来更新最近的 commit ,而不是创建新的 commit 。
确定是空目录
初始化git,会在项目目录谈穗同级创建一个.git隐藏和侍闹目录
在项目目录中创建文件,例: index.html
将index.html添加到暂存区
将 index.html添加 备注内容 并 提交
此时, index.html 已经 创建/修改>添加到暂存>备注并提交
接下来指定,推送到仓库的地址
执行推送
基本一样
在VScode中 ⌃ + ⇧ + ~调出终端执行,也可以鼠标操作
在Atom中, www 目录下直接可以看到 .git 隐藏目录,打开 config
⌃( 打开Git面板
⌃* 打开GitHub面板
GitHub面板会提示你需要一个 token ,复制粘贴到Atom的GitHub面板中的输入框中即可。可能会需要重启Atom。
接下来只需要关注Atom中的Git面板 修改/创建 操作之后
查看Git安装位置 which -a git
Git版本查询 git --version
卸载Git,先查看安装位置
然后进入Git所在目录cd /usr/bin ,输入 sudo rm -rf git*就干净了
这是我自己的笔记,谈不上教程,如果有误,望唤罩指正,谢谢!
下图出处不明,希望对你有用。
git子模块可以用于项目包含另一个项目的情况,也许是第三方库或被多个项目引用的基础框架。
此次学习子模链迅块就是因为公司的基础框架在多个不同的项目上的使用,同时又想当在开发项目过程中对基础框架有改动时,其他项目也能同时更新到改动的部分,而子模块允许我们将一个git仓库作为另一个git仓库的子目录,同时还能保持提交独立,正好满足原来设想的需求。
git submodule add https://github.com/yangmin1234/test1.git
当我们运行 git submodule update 从子模块仓库中抓取修改时,Git 将会获得这些改动并 更新子目录中的文件,但是会将子仓库留在一个称作 “游离的 HEAD” 的状态。 这意味着没有本 地工作分支(例如 “master”)跟踪改动。 所以你做的任何改动都不会被跟踪。
git checkout stable进入子模块并检出相应的工作分支
git submodule update --remote从上游拉取数据
git submodule update --remote --merge 从上游拉取数据并合并
发布子模块改动
如果我们在主项目中提交并推送但并不推送子模块上的改动,其他尝试检出我们修改的人会遇到 麻烦,因为他们无法得到依赖的子模块改动。
由于工作中使用git作为版本管理,之前对git的了解不多,特别是底层方面的原理方面的知识。为了能更好的使用git,有必要学习并梳理下相关知识。
步入正题:
执行git init 初始化后,会在.git文件夹下会创建多个目录,每个文件夹功能划分的很清晰。
Git 是一套内容寻址文件.通过键值对的方式存储和查找。
下面操作一遍,直观的看到整个过程,以便理解。
参考: https://git-scm.com/docs/git-hash-object
参考: http://man.linuxde.net/find
可以见到文件名称为数字和字母组成的字符串。这个是根据文件内容和头信息(Header),通过SHA-1算法计算得出的40位十六进制校验和。
SHA-1是一种加密哈希函数(cryptographic hash function)。SHA-1将文件中的内容通过其hash算法生成一个160bit的报文摘要,即40个十六进制数字(每个十六进制数字占4位)。它几乎可以保证,如果两个扮裤文件的SHA-1值是相同的,那么它们确是完全相同的内容(类似于生活中的指纹识别);SHA-1主要有两种让缺裤用途,一个是加密,一个是数据完整性校验。
直奔主题,在Eclipse中使用git clone别人(比如网上的公开课)分享在Github上的代码:
1.在eclipse中安装git:
我使用的是ADT Bundle 的 eclipse,其中自带了git,如果使用的eclipse没有git可以打开eclipse 的Help>Install New Software.打开如图:
在Name中随便填一个名字,Location填写 http://download.eclipse.org/egit/updates/
点击OK,回到图中背后的窗口中,勾选Name下的两个勾,记得把最下面Contact all update sites during install to find required software去掉(如果你网速很好的话可以不用去掉),OK,Next>Next,接受协议,然后点击安装。安装完成如果有提示重启则重启,安装完毕。
2.从eclipse的git 克隆别人分享的闭厅扒代码:
在Package Explorer空白处右击,选择Import>Git>Projects from Git,Next,选择URI(如果已经有本地的仓库久选local),伏闭打开如图:输入URI:https://github.com/ChineseKeZhenxu/android.git。
以上就是git学习笔记的全部内容,在上述仓库中有3个提交,其中 HEAD 指向 bb780f9 上的 master , 这个时候如果我们运行 git reset HEAD~ 命令,会将 commit bb780f9 中的文件移动到工作目录中。