网页设计与制作个人网站,上海百度竞价托管,世界优秀摄影作品网站,重庆建设工程安全管理网查询一切都从#xff1a;Git User Manual开始#xff0c;或者中文版的Git中文手册 核心概念
工作区
工作区我们可见的#xff0c;可以进行修改的目录树。我们可以在目录树中进行文件的查看#xff0c;修改。通常我们会使用一个神级编辑器Vim。我给她取了个名字#xff0c;就…一切都从Git User Manual开始或者中文版的Git中文手册 核心概念
工作区
工作区我们可见的可以进行修改的目录树。我们可以在目录树中进行文件的查看修改。通常我们会使用一个神级编辑器Vim。我给她取了个名字就叫View In Moon。神秘而无所不能。
暂存区
暂存区在不可见的.git/ 目录树下有个文件叫做index用于记录改变的ID而实际的改动内容被保存到了objects目录下面。
本地版本库
本地版本库在.git/目录下有个文件叫做HEAD指向了本地库。而本地库文件的改动也都是记录与objects/ 目录下。
对象文件
对象文件我们所有的改动记录都保存于这个目录下。整个的.git/目录下 objects/ 文件夹所占空间最大 命令使用
git clone
一切工作的开始。Git是一个分布式的版本管理工具。通常我们将服务器上的原始文件仓以及git信息复制到本地进行开发。举个例子我们简单的从github上clone一份c的图形库和一个对应的小应用。地址为https://github.com/gimaroro/GraphicEngine.git
直接执行 git clone https://github.com/gimaroro/GraphicEngine.git
结果如下 当前目录下对应远端库文件目录。
同时复制一份.git/文件目录。 git diff
查看工作区和暂存区的差别。
git add
将工作区中的更改记录到index中并将改变生成一个对应的object文件保存。
git commit
当执行提交操作git commit时暂存区的目录树写到版本库对象库中master 分支会做相应的更新。即 master 指向的目录树就是提交时暂存区的目录树。
git reset
当执行 git reset HEAD 命令时暂存区的目录树会被重写被 master 分支指向的目录树所替换但是工作区不受影响。
git rm
当执行 git rm --cached file 命令时会直接从暂存区删除文件工作区则不做出改变。
git checkout
当执行 git checkout . 或者 git checkout -- file 命令时会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险会清除工作区中未添加到暂存区的改动。
当执行 git checkout HEAD . 或者 git checkout HEAD file 命令时会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的因为不但会清除工作区中未提交的改动也会清除暂存区中未提交的改动。
git push
将本地库中的修改推送到远端服务器代码库中。通常要对应对应的远端分支名对应分支内容将发生变更。
git pull
这个命令是git fetch和git merge的组合。
git fetch
例如 我在服务器上修改一部分代码。这部分代码的修改可以通过git fetch remote-repo/branch的形式下载变动。
git merge
git merge other-branch。 将other-branch的改动合并到当前的分支并且向前HEAD向前移动。
git init
这个我们在后面的服务器搭建gerrit再讲。
git remote
查看与当前本地库对应的远端的分支。git remote add name remote-url. 给远端的分支创建一个别名。
git blame
通常使用方法是 git blame file; 查看该文件的最近的每一行的提交记录。
git bi-search
git bisect start开启一个二分查找过程 git bisect good/new; 或者使用 git bisect bad/old; git bisect terms查看当前用的标记是什么内容 git bisect skip跳过某个 commit git bisect reset回到 git bisect 前的状态 git bisect view当前二分查找过程还剩下多少 commit git bisect log查看 bisect 过程的日志 git bisect run通过可执行文件来自动测试和打 good、bad 标记 git bisect replay根据日志文件重新跑二分查找过程
总结
其实很早就接触git 工具了应该精通git并且将服务器端的部署结合gerrit的内容应用起来。曲不离口码不离手。淦