">
Linux用户首先需要安装git,centos用户一般使用yum install方式进行安装
git的配置分为两个层面,一个是配置全局的,这个配置供全部的本地仓库使用,一个是针对某一个特定的仓库所做的配置,后者的配置会覆盖前者的配置
git的配置的两种方式:通过编写配置文件和通过git config指令(git config –help查看配置帮助)
如果配置好了之后,输入git log指令,我们可以看到用户,邮箱等相关信息
配置用户信息
$ git config --global user.name "Your Name"
$ git config --global user.email "Your Email"
例如
$ git config --global user.name "Neil"
$ git config --global user.email "[email protected]"
上面的指令中 –global表示配置的一个全局的选项,意思就是,这个配置对该用户的所有本地仓库都是有效的
全局的配置信息会被git保存在本地的~/.gitconfig文件中
配置git颜色之后,比如在查看本地diff的时候,会显示不同的颜色,或者查看本地branch(分支)的时候,所在的分支会高亮显示
使用下面指令进行颜色配置,下面的颜色配置基本可以满足大多数用户的需求,如果想要更多的配置,可以自行查阅
$ git config --global color.ui true
用于从克隆一个远程仓库,clone完成后,本地仓库就有了远程仓库的完整副本
除非是新建项目,基本不使用这个指令,该指令用于初始化一个git仓库,主要是生成了git仓库的一些配置文件
将本地的修改添加到staged状态,可以这样子理解本地仓库里面有很多数据,每次修改数据之后,首先要使用git add/rm将修改的数据添加到一个等待记录区里面,等待记录区里面的数据,要经过git commit -m记录之后,才能够进入到本地仓库
展示本地仓库的一个状态,此时会列出已经修改但是没有提交到等待记录区的文件,不属于仓库的新增的文件,还有已经存在等待记录区的文件
将等待记录区的文件,记录一下,保存在本地仓库,这一步的目的实际上是给每个修改做一个标记,方便快速的查找
一般用于修改本地git的历史文件,一般有下面几种情况
- git reset –hard ,直接抛弃新的commit和他的修改,将指针指向,慎用
- git reset –soft ,直接抛弃新的commit,但是将修改的内容,放入到了等待记录区,一般用于修改最后提交的commit
- git reset,将等待记录区所有内容全部移除,但是本地修改的文件没有改动
实例1:本地最后一个commit是做测试用的,现在已经不需要了,可以直接删除最后一个commit
git reset --hard HEAD~1
实例2:希望将本地的最后两个commit合并成一个,可以先将最后一次的放入到等待记录区,然后一起提交
git reset --soft HEAD~1 // 移除最后一个 commit,并且将修改放入 staged 区
git commit --amend --no-edit // 修改最后一个 commit(因为上一个已经删除最后一个 commit 了),并且添加 staged 中的内容
多人参与项目的时候,有各种分支,git branch就是用来处理分支的
git branch展示当前本地的所有分支,且高亮当前分支
git branch -a展示所有的本地分支和远程分支
git branch -m重命名分支
git branch -D删除分支
一般使用git clone克隆代码之后,开发的时候一般在分支上面开发
git checkout 分支名,切换分支
git checkout -b 新的分支名,新建分支
使用git clone之后,本地的项目就是remote(远程),这个远程是相对于云端代码库来讲的。我们把本地的这个remote叫做origin,这就可以理解git push origin master的含义了吧,就是把本地的origin远程,推送到云端的master。我们还可以写git push origin hahah,这个hahah是云端的分支名
查看本地的remote使用
git remote
git remote -v
pull是将云端的remote和本地的分支进行merge
fetch是拉去云端的remote,但是不会和本地分支merge,而是拉去到了FETCH_HEAD
push将本地的推送到云端
当前用户的分支是,需要将A推送rebase到B分支上面,执行
git rebase B
rebase首先会找到A和B的共同祖先的commit,然后把A分支上面的所有修改一点点加到B上面,如果有冲突则需要解决冲突,如果没有就rebase成功了
这里的B一般代表的公共开发的分支,比如一个任务,交给了几个同学共同开发,此时会先建一个分支B,然后大家往B上面推送代码,一旦B有更新,就需要将本地A的分支,rebase到B上面
rebase之后,B最后进行commit,这样子非常清晰
但是merge不一样,merge会按照时间顺序合并两个分支,会导致合并后的内容比较混乱,一般使用rebase而不适用merge
一、 Git 常用命令速查 git branch 查看本地所有分支 git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支 git branch -r 查看远程所有分支 git commit -am "init" 提交并且加注释 git remote add origi...
安装githttps://www.git-scm.com/download/ 点击 安装好了之后,在开始菜单里面找到Git Bash git config --global user.name "你的github用户名" git config --global user.email “你的github邮箱” 查看是否登录账户配置成...
了解Git和GitHub、虚幻引擎C++项目的版本控制等等! 你会学到: Git是如何工作的 如何从命令行使用Git 使用GitHub、GitHub桌面应用程序、Visual Studio中的Git工具和VS代码等Git工具 在虚幻引擎5和虚幻引擎4中使用Git跟踪虚幻引擎项目 在Visual Studio和Visual Stu...
在 oh-my-zsh 进入 包含 git 仓库目录时,执行 ls 时会比较卡顿 原因: oh-my-zsh 要获取 git 更新信息 解决办法: 设置 oh-my-zsh 不读取文件变化信息(在 git 项目目录执行下列命令) $ git config --add oh-my-zsh.hide-dirty 1 如果还是...
gitlab创建项目a及一个主分支master 本地整体复制已有项目b 本地克隆gitlab上新创建的项目a(git clone gitlab地址) 将本地克隆过来的a文件夹下的.git目录拷贝到b项目下(cp -r .git …/b,注意是两个点,不是三个点,写两个点后,编辑器一直给输出三个点,晕) 删除本地克隆过来的项目a,将本地...
私信我,回复:学习,获取免费学习资源包。在 2005 年的某一天,Linux 之父 Linus Torvalds 发布了他的又一个里程碑作品——Git。它的出现改变了软件开发流程,大大地提高了开发流畅度!直到现在仍十分流行,完全没有衰退的迹象。本文不是一篇 Git 入门教程,这样的文章一搜一大把,我是要从具体实践角度,尤其是在团队协作...
常用术语 1. origin origin是对项目最初克隆(clone)的远程仓库的缩写。 更准确地说,origin 是用来代替原始(original)远程仓库的URL, 从而使在git 命令中使用原始仓库更加容易。 2. master master 是分支的命名约定。 从远程服务器克隆后,生成的本地存储库只有一个本地分支...
开发中,发现有错误版本提交带远程分支master,怎么处理? 1 简介 最近在使用git时遇到了远程分支需要版本回滚的情况,于是做了一下研究,写下这篇博客。 2 问题 如果提交了一个错误的版本,怎么回退版本? 如果提交了一个错误的版本到远程分支,怎么回退远程分支版本? 如果提交了一个错误的版本到公共远程分支,又该怎么回退版本? 3...
文/AbnerKang(简书作者)原 文链接:http://www.jianshu.com/p/d7a7ba4f2341?utm_campaign=maleskine& utm_content=note&utm_medium=reader_share&utm_source=weixin&from=timeline&isappins...
现有版本; h20, h28,h26,i8 h28,h26,i8是从H20下面创建的。 需求: 从H28下面创建新分支继续开发。 思路: 所有代码均是放置到H20上仓库当中,首先下载H20完整仓库,也就是.git文件夹当中内容,其本质是一个ZIP文件。 然后从仓库当中取出某一个分支(如H28),这就是同步到某个分支的所有代...
import time time.strftime("%Y%m%d %X", time.localtime()) #当前时区 time.strftime("%Y%m%d %X", time.gmtime(time.time()))#0时区 下面是format字符串的解释: strftime(format[, tuple]) ->...