美文网首页
Git(持续更新中)

Git(持续更新中)

作者: Caesar_emperor | 来源:发表于2019-08-16 08:36 被阅读0次

一.一些包

git-gui: Git的一种基于Tcl/TK的图形用户界面;gitk: 是另一种用于Tcl/T编写的但更侧重于项目历史可视化的Git浏览器;gitweb: 用于在浏览器里显示Git版本库git-email: 通过电子邮件发送Git补丁git-daemon-run: 接受匿名下载请求的方式来共享你的版本库

sudo apt-get install 包名 

二.一般工作流程

1、git clone 克隆远程资源到本地目录,作为工作目录;

2、然后在本地的克隆目录上添加或修改文件;

3、如果远程修改了,需要同步远程的内容,直接git pull就可以更新本地的文件;

4、本地在修改之后,可以通过git status 查看修改的文件。然后使用git add 添加修改的文件暂到缓冲区;

5、在添加之后,可以使用git commit添加到当前的工作区;

6、在修改完成后,如果发现错误,可以撤回提交并再次修改并提交;

7、git push将本地的修改推送到远程的git服务器。

三.分支操作

feature分支开始于develop分支,完成以后合并到develop分支。
当完成一定数量feature分支以后,从develop再开一个release分支出来,这些特性将被更行到下一个发布的版本中,之后的feature将不会被合并到release中。之后在release分支中,只修改bug,然后完成release分支。

完成release分支会完成以下三个操作:

1、合并release分支到master;

2、给master打上版本的标签;

3、release回归到develop分支。

当发现master上有bug时,开一个hotfix,完成后合并到master分支。

1、创建本地分支:
git branch 分支名字

2、切换到新的分支工作:
git checkout 分支名字

**这时候修改的文件都是在dev分支,不会对master分支的文件进行修改。

3、切换分支
git checkout master 切换到master分支
git merge dev 切换后把dev分支的代码合并到master分支上

4.删除分支
git branch -d dev 删除分支

如果有冲突会有提示,默认是添加两个分支文件里面的内容,然后Git用<<<<<<<,=======,>>>>>>>标记出不同分支的内容,修改冲突的文件,然后git add修改后的内容就可以继续提交了。

三.起步

1)查看子命令

git //系统会自动提示后缀命令 

2)建立Git版本库的技术

--创建初始版本库--
将任何目录,网站等转化为版本库:

git init //Git将所有修订版信息放在顶层的隐藏文件.git目录内

--将文件添加到版本库(添加后到暂存区)--

git add 文件名.后缀 //目前处于暂存状态

--查看中间状态的上传文件--

git status 

*一条完全限定的git commit命令必须提供日志消息和作者(该操作不会对status产生影响)

git commit -m "Initial contents of public_html" --author="Jon Loeiger"

*配置提交作者(该操作不会对status产生影响)

git config user.name "Jon Loeiger"

git config user.email "jdl@example.com"

--更改后再次提交(commit后到本地分支)--

git commit 文件名.后缀名

--推送到远程--

git push -u origin master 

--从远端仓库提取数据并尝试合并到当前分支--

git pull 

--获取远程tag--

git fetch origin tag

--查看历史--

git log 

--查看更详细信息--

git show 版本号 //git log会打印出commit的版本号

--显示版本库对象的内容、类型及大小信息--

git cat-file -t(显示对象类型)/-s(显示对象大小)/-e(对象存在且有效,命令结束状态返回值为 0)/-p(根据对象类型显示内容) 散列值

--提供当前开发方式分支的摘要--

git show-branch --more==10 //10表示额外10个版本

--查看版本差异和变更--

git diff 版本号1 版本号2

git diff --cached 显示已经暂存并且因此要有助于下次提交变更

--版本库内文件的删除和重命名--

删除:git rm 文件名.后缀名
注释提交 git commit -m "注释内容"(删除后这步一定要做) 

--重命名--

git mv 原文件名 新文件名

3)创建版本库副本

git clone [地址] [本地目录] 

4)关于回滚

1、在工作区的代码

git checkout filename.后缀   # 丢弃某个文件,或者

git checkout .       # 丢弃全部

**git checkout . 表示丢弃全部,也包括:新增的文件会被删除、删除的文件会恢复回来、修改的文件会回去。这几个前提都说的是,回到暂存区之前的样子。对之前保存在暂存区里的代码不会有任何影响。对commit提交到本地分支的代码就更没影响了。当然,如果你之前压根都没有暂存或commit,那就是回到你上次pull下来的样子了。

2、代码git add到缓存区,并未commit提交

git reset HEAD .  或者

git reset HEAD filename.后缀

**这个命令仅改变暂存区,并不改变工作区,这意味着在无任何其他操作的情况下,工作区中的实际文件同该命令运行之前无任何变化

3、git commit到本地分支、但没有git push到远程

git log # 得到你需要回退一次提交的commit id 

git reset --hard   # 回到其中你想要的某个版

或者

git reset --hard HEAD^  # 回到最新的一次提交

或者

git reset HEAD^  # 此时代码保留,回到 git add 之前

4、git push把修改提交到远程仓库

1)通过git reset是直接删除指定的commit 

git log # 得到你需要回退一次提交的commit id 

git reset --hard 

git push origin HEAD --force # 强制提交一次,之前错误的提交就从远程仓库删除

2)通过git revert是用一次新的commit来回滚之前的commit 

git log # 得到你需要回退一次提交的commit id 

git revert   # 撤销指定的版本,撤销也会作为一次提交进行保存

3) git revert 和 git reset的区别

- git revert是用一次新的commit来回滚之前的commit,此次提交之前的commit都会被保留;

- git reset是回到某次提交,提交及之前的commit都会被保留,但是此commit id之后的修改都会被删除

5)捕获状态树

git write-tree

四.四种对象类型

1.块(blob/binary large object,二进制文件大对象):文件的每一个版本.

2.目录树(tree):记录标识符,路径名和在一个目录里所有文件的一些元数据;也可以递归引用其他目录树或子树对象,从而建立一个包含文件和子目录的完整层次结构.

3.提交(commit):每一个提交对象指向一个目录树对象,这个目录树对象在一张完整的快照中捕获提交时版本库的状态

*在 Git 的版本管理中,每一次提交Git会先计算每一个子目录的校验和,然后在 Git 仓库中这些校验和保存为树对象,随后创建一个提交对象(commit object),该提交对象会包含一个指向暂存内容快照的指针, 而每一次提交产生的提交对象都有一个父对象,即本次提交的上次提交。

4.标签(tag):一个标签分配一个任意的且人类可读的名字给一个特定的对象,通常是一个提交对象。

五.三种文件类型

相关文章

  • Git(持续更新中)

    一.一些包 git-gui: Git的一种基于Tcl/TK的图形用户界面;gitk:是另一种用于Tcl/T编写的但...

  • Git - 基础(持续更新中)

    理解 快照而非增量更新 其它版本系统把版本看成一组基础文件以及在上面进行的增量操作。 Git把版本看成一组文件的快...

  • git全集「持续更新中。。。」

    写在前面 谁都想岁月静好,可现实是大江东流。你只有努力奔跑,才能留在原地。 岁月匆匆,时不我待,莫辜负大好时光,只...

  • git 持续更新

    查看分支:git branch 创建分支:git branch 切换分支:git checkout ...

  • Git 随手记(持续更新中...)

    一、git clone 部分文件/文件夹 在进行项目开发时,我们有时候会遇到这样一种需求:整个的 project ...

  • git基础操作

    GitHub(持续更新中) 一、克隆项目到本地 1、在桌面上右击点git bash here 2、输入 git c...

  • git常见问题

    持续更新~ 1、输入git命令后提示: fatal: not a git repository (or any o...

  • 版本控制

    目录 一,Git 二,SVN 三,参考 说明:Mac上使用,持续更新; 一,Git SourceTree管理Git...

  • Git学习整理-还在持续更新中

    [TOC]简书什么时候才能支持目录啊。。。。。。。。。。。 Git学习整理 更新2019-8-22学习自极客时间-...

  • Android进阶常用网站

    持续更新... 一. Android源码学习网站 grepcode Git repositories on an...

网友评论

      本文标题:Git(持续更新中)

      本文链接:https://www.haomeiwen.com/subject/nuzjjctx.html