2.Git知识】的更多相关文章

git的优点就不去多说了.阻碍咱新手体验它的唯一问题就是门槛太高,脚本看着像天书, 本文主要阐述的,就是如何在android studio上,也能像tfs那样,非常简单的操作,就能使用git进行版本管理 几个月用下来,咱每天要做的就是开始工作前,alt+下方向键,从服务端拉取数据:结束工作后,alt+上方向键,将代码提交到服务器上.就这两步,完成了版本管理. 因此,有了这篇面向新手的图文并茂的文章,一步步按照步骤下来,你就可以完成项目对git的融合. (提示:面向新手的介绍型文章,因此步骤细致繁…
上篇博客我们从 git clone 和 git status 两个命令开始,引出了一系列的git操作命令, 请参见:<Git知识总览(一) 从 git clone 和 git status 谈起>.上篇博客中所涉及的git命令也是git命令操作中常用的基础操作命令,本篇博客继续来总结一下git使用时常用的命令操作以及其他相关基础知识. 下方是本篇博客所会涉及的内容: .gitignore文件的配置 使用 git diff 来查看修改的内容 git 中文件移除 -- git rm git 中的文…
前两篇博客集中的聊了git的一些常用命令,具体请参见<Git知识总览(一) 从 git clone 和 git status 谈起>.<Git知识总览(二) git常用命令概览>.本篇博客主要涉及了在git版本管理中的分支的创建.切换以及合并.并且罗列了在merge分支使发生冲突时的解决方式.同时还介绍了如何删除本地分支以及远程分支.本篇博客除了参考ProGit中的内容,还参考了learngitbranching这个网站进行的git分支内容的学习和梳理.下方的示例有的给出了基于Le…
上篇博客聊了<Git知识总览(三) 分支的创建.删除.切换.合并以及冲突解决>,本篇博客我们主要来看一下 rebase 变基相关的操作.rebase 操作和 merge 操作最终都可以达到合并代码的效果,不过其对分支的影响不同.上篇博客中我们聊到了 merge操作.简单的说merge操作就是将两个commit进行合并,然后在这两个分支合并的基础上创建一个新的commit.而变基操作简单的说是改变提交的父类,在改变父类时进行合并操作.合并就可能产生冲突,所以rebase时也会产生冲突,下方会介绍…
Git知识总结 Git安装 windows 在git官网中下载安装程序,然后按默认选项安装即可 安装完成后,在开始菜单里找到"Git"->"Git Bash",蹦出一个类似命令行窗口的东西,就说明Git安装成功! 安装完成后,还需要最后一步设置,在命令行输入: $ git config --global user.name "Your Name" $ git config --global user.email "email@ex…
本篇博客是整理git相关知识的第一篇,因为之前一直是用SourceTree对Git的命令行操作用的不是特别熟,于是乎过了一遍ProGit(链接:https://git-scm.com/book/zh/v1).本篇博客以及后边的将要发的几篇博客是对之前看ProGit时的笔记的整理.当然在整理时,根据具体示例来梳理了一下知识点,和ProGit上的讲解顺序有些区别.本篇博客聊了Git基础操作的一部分,主要是基于Github上Fork的Masonry仓库来做的,首先Clone相关仓库,然后根据git s…
1.前言 Git版本管理的内容,是一系列由40bytes SHA-1字符串所代表patch,而Git References,则是对这些字符串的引用(也可以理解为别名).为什么需要别名呢?因为这些字符串太难记了!根据使用场景的不同,Git References分为四类: 2.git references 2.1 指向最后一次提交的reference(分支名) 这类reference以“refs/heads/”为前缀,例如“refs/heads/master”,实际就是git分支,git分支指向某一…
本文首发于微信公众号:程序员乔戈里 转载请注明:https://blog.csdn.net/WantFlyDaCheng/article/details/102538508 一.两次的 git commit 到不是同一个远程分支 这里由于提交自己的代码第一次提交到A分支,第二次提交B分支,然后报错了,这里报错以后,会提示一个百度自己内部的链接,你点击链接就可以照着提示去修改,可以说还是省了不少事,不用自己去google百度去解决,开发效率也提高不少 上面图片中有6e8713f is CR par…
上篇博客聊了<git分支管理之rebase 以及 cherry-pick相关操作>本篇博客我们就以Learning Git中的关卡进行展开.下方列举了LearningGit中的 merge.rebase.reset.revert.cherry-pick 以及交互式rebase相关关卡的操作以及对应的解析.后边在聊交互式rebase操作是,不单单给出了LearningGit中的内容,而且给出了真正的Git分支在交互式rebase操作时的具体案例. learngitbranching的地址为:ht…
前几篇博客陆陆续续的讲了好多关于Git操作的内容,本篇博客仍然也不例外,不过本篇博客的主题是关于git的远程操作的.依照之前博客的风格,我们依然依托于LearningGitBranch中的相关内容来探究一下Git的远程操作.今天这篇博客算是Git系列博客的结尾了. 一.PUSH到远端 1.将本地的Merge操作推送给远端 下方左边是我们的git分支的初始状态,我们从master分支上分别创建了三个不同的分支side1.side2.side3.并且在每个分支上都有新的提交.右边是远端的状态,在我们…
1.前言 我们在介绍git版本管理的时候,没有提到“服务器”的概念,所有的版本管理操作,都是在本地进行的.这就是git与其它版本管理工具(如CVS.SVN等)最本质的区别所在:分布式. 所谓的分布式,是指git仓库不是以client-server的形式组织的,而是以对等的形式,在所有的机器上保存相同的copy(当然,是在各自修改之前),并在需要的时候,同步各自的改动,完成“版本控制”的目的. 2.git管理的分布式 假设上面图片是位于github上的某一个仓库的当前快照,任何人都可以把它copy…
1.前言 git包含四种对象文件: blob tree commit tag(目前没用到,暂时忽略) 2. git对象的关系   图 git三种对象关系   粗略一看,可以大致感觉出blob类似于文件,而tree类似于文件夹,而commit则是囊括这一大堆东西的一个对象. 3.SHA-1算法 SHA-1算法具体怎么计算,可以自行google.这里只说一下该算法在git数据存储中的应用.我们可以用git提供的命令来计算一个文件的SHA-1值: echo 'test content' | git h…
1. 前言 因为手里有一份代码之前是直接从其它git服务器上克隆下来的,现在想自己搭建一个git服务器把这份代码管起来. 2. 搭建git服务器 1.安装git: $ sudo apt-get install git 2. 创建一个git用户,用来运行git服务: $ sudo adduser jason 3. 创建证书登录 收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/book/.ssh/authorized_keys文件里,一行一个. 此处…
1.前言 一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表. 通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等. 在这种情况下,我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件模式. 2.一个实际的例子 $ cat .gitignore*.[oa]*~第一行告诉 Git 忽略所有以 .o 或 .a 结尾的文件.一般这类对象文件和存档文件都是编译过程中出现的. 第二行告诉 Git 忽略所有以波浪符(~) 结尾的文件,许多文本…
0.前言 本文主要对git常用命令的工作原理做一个详细的说明,常用命令主要包括: 1.git add git add相关命令很简单,主要实现将工作区修改的内容提交到暂存区,交由git管理. 2. git commit git commit主要实现将暂存区的内容提交到本地仓库,并使得当前分支的HEAD向后移动一个提交点. 3. git branch 关于分支,大概有展示分支,切换分支,创建分支,删除分支这四种操作. 4. git merge merge命令把不同的分支合并起来.如下图,在实际开发中…
0.前言 一般来说,日常使用只要记住下图6个命令,就可以了.但是熟练使用,恐怕要记住60-100个命令. 上图分别为: Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库 6个命令分别是: git pull:从远程仓库将代码同步到工作区 git fetch/clone:从远程仓库同步代码到本地仓库 git checkout:用本地仓库代码同步工作区 git add:将工作区代码加到暂存区,实现git管理 git co…
目录 项目工具篇(一)GIT 说在前面 背景 与其他版本控制产品对比 Git下载地址及安装 下载地址 安装 在案例中简单使用Git命令 git clone git log git diff git checkout 对于这几条命令的Concept Map(概念图) git init 项目工具篇(一)GIT 说在前面 近段时间在项目上碰到了一个非常棘手的问题,因为Salesforce没有一个很好的代码版本管理工具,所以当项目中成员同时更改一个代码文件时就会很麻烦,难免会覆盖掉另一个同事抓破脑袋写出…
1.前言 git是一种分布式版本管理工具,本文主要是通过阅读博客中几篇讲述git的优秀文章,并对文章进行整理.提炼总结得出一份git的说明文档. 本文档介绍了git的基本原理及常用操作,目标是通过阅读完本文档对git基本原理有一个清晰的认识,同时可以在工作中进行基本的git操作 2.基本术语 分支 git使用一个“链表”,记录仓库里每一次的“修改记录”,“用于保存commit记录的链表”是可以被命名的,它就是我们常说的分支.如master分支(可以当作一个链表头,指向最新一次commit) 图…
git最小化配置: 配置user.name 和 user.email git config --global user.name 'your_name' git config --global user.email 'your_email'     // email需要是有效的Email config的作用域 缺省等同于local git config --local  只对某个仓库有效 git config --global 对当前用户所有仓库有效 git config --system 对系…
概述 工作中使用git进行代码托管,一开始只知道git add commit,之后了解了git-flow插件,觉得超牛逼,一键生成feature分支,再后来听说原生git命令更好用,于是又去学了原生git命令. 看了下git官方文档,记录下学习的心得. 基本介绍 git分为未跟踪区,跟踪区和暂存区. 文件一般都存放在未跟踪区,修改后的文件也存放在未跟踪区. 我们熟知的git add命令会把修改提交到跟踪区.值得一提的是,我们一般使用git add .来提交所有改动,也可以使用git add pa…
git初始化 1.设置名字和邮箱 git config --global user.name "zhangsan" git config --global user.email "zhangsan@gmail.com" 执行完以后,Linux在家目录下就会产生一个.gitconfig隐藏文件,windows点击开始-->个人文件夹(自己电脑的名字) cat ~/.gitconfig [user] email = zhangsan@gmail.com name…
版本控制git之一 - 仓库管理 版本控制git之二-分支 git https://mp.weixin.qq.com/s/96FS12DTzbjAJQ1ynRNqdg git init 初始化目录 git add 将文件添加到缓存区 git commit -m 从缓存提交到版本库 git status 查看当前版本的状态 git log 从当前位置之前查看提交记录 git reflog 查看提交记录 git reset --hard zhi 回滚到指定的版本 git checkout -- fi…
(四) 远程仓库通常只是一个裸仓库(bare repository):.git子目录 四种协议:本地传输, SSH, GIT, HTTP, 除了http,均需要在服务器端安装运行git. SSH:SSH是唯一支持读写的协议. 缺陷:不能实现仓库的匿名访问,不利于开源.如果在公司网络里使用,还需要匿名访问,那么还需要支持其他协议. GIT:速度最快,和SSH数据传输机制相同,但是省去加密和授权的开销. 缺陷:缺少授权机制,一般做法是可以同时提供SSH接口,让几个开发者拥有推送权限.git协议最难架…
(一)基本操作:  git中所有文件一共有三个状态:已提交,已暂存,已修改. 三个工作区域: git目录:.git文件夹,每次拷贝其实只拷贝git目录 工作目录:文件和目录都是从git目录中压缩对象数据库中提取出来的. 暂存区:是一个简单的文件,在git目录中,有时叫做索引文件. 工作流程: 1.在工作目录中修改文件 2.对修改后文件进行快照,存入暂存区 3.提交更新,将保存在暂存区的文件快照永久转存到git目录中. 获取帮助的方法:git help <verb> / git <verb…
转自:http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库 一.新建代码库 # 在当前目录新建一个Git代码库 $ git init # 新建一个目录,将其初始化为Git代码库 $ git init [project-name] # 下载一个项目和它的整个代码历史 $ git clone [url]…
1,密钥 (公钥和私钥) @ 公钥放在服务器上(说白了这里的服务器就是远程仓库, 就是谁建立的远程仓库这个公钥就放在他的ssh设置那) @ 私钥 放在本地就行,不用动,就是你生产密钥的.ssh 文件里 我的疑问 服务器上的公钥是怎么和私钥建立起联系的,公钥能直接找到私钥的位置么,换句话说我把.ssh改名为.shha,或者换个路径,或者把这个.ssh 删除了,服务器那还能找到我么,我还能推送么? 2,密钥 和 微信开发平台的仓库管理的关系 1,微信开发平台 有小程序的专属的项目组和自定义的项目组…
git特点: 1)分布式 2)存储快照而非差异 3)本地有完全的版本库,几乎所有操作都在本地 4)有内在的一致性,SHA1 5)优秀的分支管理 6)支持各种协同模式 7)开源,有一些第三方软件可整合使用,几乎所有操作都是 与CVS/SVN,Git 的优势 1)支持离线开发,离线Repository(仓库) 2)强大的分支功能,适合多个独立开发者协作 3)速度快 git的常用命令小结: 由git +(以下参数)组合 config 全局配置参数相关 init 创建一个新的git版本库或初始化一个已存…
Git安装 Git在不同的操作系统上安装是不一样的,这里只讲解我们需要的,也就是在Windows下的安装,主要安装msysGit和TortoiseGit 安装msysGit,到https://code.google.com/p/msysgit/ 去下载最新的版本安装后,能执行Git的shell命令,如查看windows的盘符:$ ls /d/common注意:忽略大小写,带命令行补全的功能 msysGit Shell的中文支持修改/etc/inputrc,示例如下:# disable/enabl…
git pull is basically a shortcut for two operations: git fetch which downloads the history from the remote. git merge which merges the new history in the current branch. It is step two where the changes from the repository get merged into your local…
好家伙,最近准备考试,有点忙 首先从版本控制开始 1.版本控制(版本迭代,新的版本) 如果一个项目由多个人去开发,那么总会需要去管理版本 你更一点,我更一点,一冲突,这个项目就炸了 所以需要版本控制. 可以理解为项目记录自己进化的博客(好烂的比喻) 一句话就是:用于管理多人协作开发项目的技术 多人开发必须使用版本控制 2.分布式管理控制 Git 没有中央服务器,在工作时,每个人的电脑就是一个完整的版本库, 工作时不需要联网,因为版本都在自己的电脑上 同步的方法如下: 我把项目改好了,别人也改好了…