git命令(资源)

Git简介

Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Git 是 Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。

Git是用于Linux内核开发的版本控制工具。与常用的版本控制工具CVS,Subversion等不同,它采用了分布式版本库的方式,不必服务器端软件支持,(wingeddevil注:这得分是用什么样的服务端,使用http协议或者git协议等不太一样,并且在push和pull的时候和服务器端还是有交互的。)使源代码的发布和交流极其方便。Git的速度很快,这对于诸如Linux kernel这样的大项目来说自然很重要。Git最为出色的是它的合并跟踪(merge tracing)能力。

Git是一种免费的开源分布式版本控制系统,既可以处理单个的小项目,也可以处理庞大的企业项目。它极其轻便,专注于速度和处理分布式项目。它脱胎于Linux内核开发,该公司的GitHub网站对开源项目来说是一个非常流行的软件库。

相关链接:https://git-scm.com/

 

1、GitHub如果要使用私有仓库,是需要付费的 GitLab可以在上面创建私人的克费仓库

2、GitLab让开发团队对他们的代码仓库拥有更多的控制,相比于GitHub,它有不少的特色 :

允许克费设置仓库权限;

允许用户选择分享一个project的部分代码

允许用户设置project的获取权限,进一步的提升安全性

可以设置获取到团队整体的改进进度;通过 innersourcing让不在权限范围内的人访问不到该资源

总结 :从代码私有性方面来看,有时公司并不希望员工获取到全部的代码,这个时候GitLab无疑是更好的选择但对于开源项目而言,GitHub依然是代码托管的首选 

git相关概念 :

git      是一种版本控制系统,是一个命令,是一种工具

gitlib       是用于实现git功能的开发库

github     是一个基于git实现的在线代码托管仓库,包含一个网站界面,向互联网开放

gitlab      是一个基于git实现的在线代码仓库托管软件,一般用于在企业内部网络搭建git私服

gitlab-ce 社区版(免费) 

gitlab-ee是企业版(收费) 

 

gitlab搭建成功

gitlab主配置文件:/etc/gitlab/gitlab.rb      # 可以自定义一些邮件服务等

日志目录:/var/log/gitlab/                          # 对应各服务

服务目录:/var/opt/gitlab/                         # 对应各服务的主目录

仓库目录:/var/opt/gitlab/git-data            # 记录项目仓库等提交信息

重启服务:gitlab-ctl  stop/start/restart    # 启动命令 

 

Git工作流程

fc7e428665a805c06b0db9813d733db6cd0.jpg

 

git架构

2ab7b03f8afadd6e93ef08e690a533bcd40.jpg

  • 工作区:就是你在电脑里能看到的目录。

  • 版本库:工作区有一个隐藏目录.git,,而是Git的版本库。

  • 暂存区:英文叫stage, 或index。一般存.git/index中,所以我们把暂存区有时也叫作索引(index)。

  • HEAD:指向 master 分支的一个"游标"

  • objects:位于 ".git/objects" 目录下,里面包含了创建的各种对象及内容。

  • git add:暂存区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到对象库中的一个新的对象中,而该对象的ID被记录在暂存区的文件索引中。

  • git commit:当执行提交操作时,暂存区的目录树写到版本库(对象库)中,master 分支会做相应的更新。

  • git reset HEAD:取消已缓存的内容,但是工作区不受影响。

  • git rm --cached <file>:会直接从暂存区删除文件,工作区则不做出改变。

  • git checkout ." 或者 "git checkout -- <file>":会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险,会清除工作区中未添加到暂存区的改动。

  • git checkout HEAD ." 或者 "git checkout HEAD <file>" :会用 HEAD 指向的 master 分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的,因为不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动。

 

1. git init

在GitHub项目初始化之前 ,数据已经存在于本地仓库中 ,可通过切换到该仓库位置后通过 git init 进行初始化 ,只有进行了此操作 ,后边的操作才有意义 。初始化后会生成一个 .git 文件夹 ,不要轻易动 。

2. git status

顾名思义 ,此语法可以查看当前状态 ,像我自己学习的时候就喜欢动不动 git status 下 ,查看当前状态 ,也能避免不必要的错误 。

3. git add

用于将指定文件提交到“缓冲区” ,git add . 即将修改过的所有文件提交到“缓冲区”

4.git commit

git add 或一些命令后 ,如果执行 git status 会提示你有文件可以 commit ,提交即可 ,例如 git commit -m"" 。

5.git push

commit 之后 ,最终提交到远程仓库需要通过 push 指令实现 。git push -u origin master 。

纸上得来终觉浅 ,绝知此事要躬行 。下边就以 leetcode 代码为例实战下吧 。

git 简单实战 。

1.首先如果没有 GitHub 账号 ,当然是要去注册一个啦 ,用户名和邮箱名都记住 。

2.本地配置用户名与邮箱(设置好的跳过此环节)。

git config --global user.name "你的用户名"

git config --global user.email "你的邮箱"

如图所示 :

cdbcc9f8a1e3f8bceb3a854443eca97f673.jpg

3.生成 ssh key

运行 ssh-keygen -t rsa -C "你的邮箱"

会提示你输入 ,可以直接回车 ,理论上会有 3 次回车输入 。(这里写此文时以配置好 ,提示是否覆盖)

13e3b44eb9ee94a1388d7bc9c5ac963e6d4.jpg

4.到上述路径下打开该文件并复制其中内容(ssh key)。

58af927d373ebbbbe05b82726fdda8430b7.jpg

5.打开 GitHub 并进入 settings ,点击 SSH  and GPG keys ,将上面复制的内容粘贴到 key 中即可 。之后点击 Add SSH key即可 。

65de9f2576c7f23b6e73d67061c07051137.jpg

6.可以在 git 窗口执行 ssh -T git@github.com ,查看是否配置成功 。

d6d0157a6b6b326b2135bf921a9d6900c84.jpg

建li远程仓库并关联本地 。

这里就以 leetcode 的代码仓库为例 。

1.首先建立远程仓库 (因为小詹已经事先用了LeetCode名字 ,这里大家可以忽略下图的报错)

f8c63210acf9581451a3aa72214b4b804e7.jpg

2.接下来就以当前状态 ,上传第 18 题和删除第 18 题为例 ,介绍如何上传 、删除远程仓库内容 。

首先 ,我们通过 cd 切换到本地仓库的文件位置 。并通过git init将该位置格式为仓库 。这里小詹之前已经git init过了 ,所以切换到该路径后面会有个master 。

6724631fc2c19c3e7f7a2f1bab34c9d991e.jpg

之后 ,在本地仓库更新仓库内容 ,小詹的远程仓库现在没有 leetcode 18题 ,本地仓库存在 ,所以接下来将该新增的第18题文件夹上传到远程仓库 。

我们平时要学会是不是 git status 下 ,看看当前状态 ,之后利用 git add 指令将要上传的文件 add 到“缓冲区” (可以 git status查看下状态 ,熟悉这个过程),之后利用 git commit 提交 ,最后 push 即可完成目标文件夹的上传 。整个过程如下 :

a3d3dd6173da307ccccbf82cfe3315bbad6.jpg

执行后重新进入远程仓库会发现多了一个文件夹 ,就是刚上传的那个 。

b373ad3d4e4287c3ad84af4585bdb2d0edb.jpg

接下来 ,如果我们不小心上传错了文件夹 ,如何删除呢 ?

以刚上传的 018.4sum 文件夹为例 ,可以通过 3 行简单的代码删除 ,具体如下 :

接下来 ,如果我们不小心上传错了文件夹 ,如何删除呢 ?

以刚上传的 018.4sum 文件夹为例 ,可以通过 3 行简单的代码删除 ,具体如下 :

99c9ddeb5f586a782592a3e15542957696b.jpg

执行完之后 ,远程仓库的对应文件即被删除了 。

e9a15945c9608e3e56aa1725256f4d35f51.jpg

 

git config

·        /etc/gitconfig 文件:系统中对所有用户都普遍适用的配置。若使用 git config 时用 --system 选项,读写的就是这个文件。

·        ~/.gitconfig 文件:用户目录下的配置文件只适用于该用户。若使用 git config 时用 --global 选项,读写的就是这个文件。

·        当前项目的 Git 目录中的配置文件(也就是工作目录中的 .git/config 文件):这里的配置仅仅针对当前项目有效。

$ git config --global user.name "runoob"  
$ git config --global user.email test@runoob.com  
$ git config --list  
$ git config user.name  

git clone

git clone http://github.com/CosmosHua/locate new  
git clone http://github.com/CosmosHua/locate.git new  
git clone git://github.com/CosmosHua/locate new  
git clone git://github.com/CosmosHua/locate.git new  

git status -s

#-s 参数,以获得简短的结果输出  
"AM" 状态的意思是,这个文件在我们将它添加到缓存(git add)之后又有改动  
“??”未add  
“A”已经add  

git diff

查看比 git status 的结果的详细信息。

git diff 命令显示已写入缓存与已修改但尚未写入缓存的改动的区别。git diff 有两个主要的应用场景。

  • 尚未缓存的改动   :  git diff

  • 查看已缓存的改动    :    git diff --cached

  • 查看已缓存的与未缓存的所有改动    :   git diff HEAD

  • 显示摘要而非整个 diff    :    git diff --stat

 

git reset HEAD 

取消已缓存的内容。

  1. $ git reset HEAD -- hello.php         取消其中一个缓存的文件  

git rm

如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f

git rm -f <file>

如果把文件从暂存区域移除,但仍然希望保留在当前工作目录中。

git rm --cached <file>

git如何撤销上一次commit操作

git reset --soft|--mixed|--hard <commit_id>  
git push develop develop --force  (本地分支和远程分支都是 develop)  
<span style="color:#ff0000;">这里的<commit_id>就是每次commit的</span><strong><span style="color:#ff0000;">SHA-1</span></strong>,可以在log里查看到  
--mixed    会保留源码,只是将git commit和index 信息回退到了某个版本.  
--soft   保留源码,只回退到commit信息到某个版本.不涉及index的回退,如果还需要提交,直接commit即可.  
--hard    源码也会回退到某个版本,commit和index 都会回退到某个版本.(注意,这种方式是改变本地代码仓库源码)  

git branch

创建分支命令:  
git branch (branchname)  
切换分支命令:  
git checkout (branchname)  
当你切换分支的时候,Git 会用该分支的最后提交的快照替换你的工作目录的内容。  
git checkout -b (branchname) 命令来创建新分支并立即切换到该分支下  
git merge secondBranch #merge secondBrach to master,可以不用切回master branch  
你可以多次合并到统一分支, 也可以选择在合并之后直接删除被并入的分支。  
删除分支命令:  
git branch -d (branchname)  

 

Git log

查看历史提交记录  
Git log  
查看简洁版  
Git log –-oneline  

git tag

如果你达到一个重要的阶段,并希望永远记住那个特别的提交快照,你可以使用 git tag 给它打上标签。

-a 选项意为"创建一个带注解的标签"。不用 -a 选项不会记录这标签是啥时候打的,谁打的,也不会让你添加个标签的注解。

$ git tag -a v1.0 –m “first tag”  
如果我们忘了给某个提交打标签,又将它发布了,我们可以给它追加标签  
$ git tag -a v0.9 85fc7e7  
$ git log --oneline 可以看到  

git remote 

添加远程库

要添加一个新的远程仓库,可以指定一个简单的名字,以便将来引用,命令格式如下:

git remote add [shortname] [url]  
git remote add remoteServer https://github.com/Courage-Freadom/hello-world/  
git push -u remoteServer master  

 

查看远程仓库  
$ git remote -v  
从远程仓库下载新分支,该命令执行完后需要执行git merge  
git fetch  
从远端仓库提取数据并尝试合并到当前分支:  
git merge  

 

1. 删除分支

1.1 本地分支

git branch -d iss53

 

1.2 远程分支

git push origin :iss53

 

2. 已经暂存起来的文件和上次提交时的快照之间的差异

git diff —staged

 

3. 比较2个不同版本之间的差异

git diff [branch]:[filename] [other-branch]:filename

 

4. 打tag

1、git tag -a v1.1.0 -m "fix bug” [branch]
2、git tag v1.1.0 master # 也可以简单点写 3、git push --tags

 

4.1 获取仓库中的所有tags

git fetch --tags

 

4.2 删除本地tag

git tag -d v1.0.0

4.3 删除仓库中的tag

git push origin :refs/tags/v1.0.0

 

5. 显示当前版本

git show master
git show develop
git show origin iss53
git show v1.0.35

 

6. 撤销提交

git revert c2785abf22c1041f6bd7f538538d571372a9127agit push origin master

 

7. 显示远程仓库的详细信息

git remote show origin

 

8. clone 出分支

git clone git@github.com:vearne/carspider.git

 

clone 出非master的其它分支

git checkout -b develop origin/develop


在本地创建一个 develop 分支,并把它和 origin上的develop 分支关联起来

 

9. 放弃所有本地变更

git checkout -f

 

10. 设置upstream

git branch --set-upstream my_branch origin/my_branch

 

11.查看仓库当前的状态

git status

12.查看历史提交记录

git log

或者加上参数查看就比较清晰了

$ git log --pretty=oneline

13.回退版本

$ git reset --hard HEAD^

14、查看操作的历史命令记录

$ git reflog

15.丢弃工作区的修改

$ git checkout -- <file>

说明:适用于工作区修改没有add的文件

16.丢弃暂存区的文件

$ git reset HEAD <file>

说明:适用于暂存区已经add的文件,注意执行完此命令,他会将暂存区的修改放回到工作区中,如果要想工作区的修改也丢弃,就执行第15条命令即可

 

Git入门

实际项目开发中,我们经常会用一些版本控制器来托管自己的代码,今天就来总结下Git的相关用法,废话不多说,直接开写。

目的:通过Git管理github托管项目代码

一、下载安装Git

1、下载Git  官方地址为:

https://git-scm.com/download/win

d7316153141c3aef89137c7cf78a1e8c838.jpg

2、下载完之后,双击安装

276dc941093a256b996622e5dc28db23ed6.jpg

3、选择安装目录

33f87b69d84bbcc8c51aee40674a4e2d3dc.jpg

4、选择组件

9a497c1e7f23fba16e497e5557851c187d9.jpg

5、开始菜单目录名设置

dd49464adbcc89352111386c4c394002613.jpg

 6、选择使用命令行环境

4d7a08b4bfab82821d7e8d151aea881dcda.jpg

7、以下三步默认,直接点击下一步

459d2a926ceaad62e2b894e556d262e8941.jpg

8a01b915e633005ad0aad0a93df49d0afd3.jpg

0754174b0791f7cc8c0e6f4a917c134dbc3.jpg

 8、安装完成

9f291afad7f02c144f4c4b3a023a4e3704b.jpg

9、检验是否安装成功

回到电脑桌面,鼠标右击如果看到有两个git单词则安装成功

d454e8d6fa4142f989d4c32e494d93a14d4.jpg

二、Git基本工作流程

1、Git工作区域

fc609fb66e9d1e53bfed483db5196571f06.jpg

2、向仓库中添加文件流程

c265fa8e6b3468c86cce1107e31e8067872.jpg

三、Git初始化及仓库创建和操作

1、Git安装之后需要进行一些基本信息设置

a、设置用户名:git  config -- global  user.name  '你再github上注册的用户名';

b、设置用户邮箱:git  config -- global  user.email  '注册时候的邮箱';

注意:该配置会在github主页上显示谁提交了该文件

c、配置ok之后,我们用如下命令来看看是否配置成功

git config --list

注意:git  config --global 参数,有了这个参数表示你这台机器上所有的git仓库都会使用这个配置,当然你也可以对某个仓库指定不同的用户名和邮箱

2、初始化一个新的git仓库

a、创建文件夹

方法一:可以鼠标右击-》点击新建文件夹test1

方法二:使用git新建:$  mkdir test1

3e8da51f793f9e34e9bd20410678ca3ab27.jpg

b、在文件内初始化git(创建git仓库)

方法一:直接输入 $ cd test1

方法一:点击test1文件下进去之后-》鼠标右击选择Git Bash Here->输入$ git int

87decd6f83857fc64860986b39975d0aa68.jpg

3、向仓库中添加文件  

方法一:用打开编辑器新建index.html文件

方法二:使用git命令。$  touch '文件名',然后把文件通过$ git add '文件名'添加到暂存区,最后提交操作

392e55d14c15003d1a4297cd00b7cad2043.jpg

bde1768d4a31111379bcaad41165ad0abf7.jpg

4、修改仓库文件

方法一:用编辑器打开index.html进行修改

方法二:使用git命令。$  vi  '文件名',然后在中间写内容,最后提交操作

ddbd8759613817925dea5d1be810472685d.jpg

5、删除仓库文件

方法一:在编辑器中直接把要删除的文件删除掉

方法二:使用git删除:$ git rm '文件名',然后提交操作

c0a768f869b391f1852b51be768e0e63631.jpg

四、Git管理远程仓库

1、使用远程仓库的目的:备份、实现代码共享集中化管理

Git远程仓库实际上就是保持在服务器上的git仓库文件

8886b01850f62ec3cdf1f38e21e9919d842.jpg

79e416f4af2f670a35fc11ec3bda4957a24.jpg

c7a137fcace95816b9798d0d7338bc0e745.jpg

五、Git克隆操作

目的:将远程仓库(github上对应的项目)复制到本地

1、代码:git clone 仓库地址

仓库地址由来如下:

168c92c2e92e29f42143bbf86a92958126a.jpg

2、克隆项目

26ce4728afe9127706c66ce7d8a48f340d2.jpg

3、将本地仓库同步到git远程仓库中:git push

5935a8c756fc445ddc6a3430d40fbb28fb2.jpg

期间出现错误的情况有: 

a、出现提交错误

e88a33a4ba0ef9fd499bfd55a44e925c37d.jpg

解决:这是通过Git GUI进行提交时发生的错误,由 .git 文件夹中的文件被设为“只读”所致,将 .git 文件夹下的所有文件、文件夹及其子文件的只读属性去掉即可。

 

b、如果出现无法同步或没有权限,解决方法如下:

用户名和密码一定要和github上的一致。

 

 Git 提交规范

一、具体规则

先来看看公式:

<type>(<scope>): <subject> 

type

  • 用于说明 commit 的类别,只允许使用下面7个标识。

  • feat  :   新功能(feature)

  • fix    :   修补

  • bugdocs   :   文档(documentation)

  • style   :     格式(不影响代码运行的变动)

  • refactor    :   重构(即不是新增功能,也不是修改bug的代码变动)

  • test   :   增加测试

  • chore    :    构建过程或辅助工具的变动

scope

用于说明 commit 影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同。

subject

是 commit 目的的简短描述,不超过50个字符。

  • 以动词开头,使用第一人称现在时,比如change,而不是changed或changes

  • 第一个字母小写

  • 结尾不加句号(.)

异常处理

我们先来看看这个异常提醒:

INVALID COMMIT MSG: does not match "<type>(<scope>): <subject>" ! 

jartto:fix bug 

这里之所以报出这个警告,是因为我的提交出现了两个问题:

  • 其一,使用了规范外的关键字;

  • 其二,很细节的问题,jartto:后少了空格;

这时候我才回忆起来,当时提交一直失败,情急之下直接强制提交,所以以后的提交都会抱出这个异常。大致意思就是:

你的之前的 Commit 不合格~你的之前的 Commit 不合格~你的之前的 Commit 不合格

这时候就很烦了,我们只能去将之前的错误修正,那么如何操作呢?

 

三、如何修改之前的 commit 信息?

其实并不复杂,我们只需要这样做:

1、将当前分支无关的工作状态进行暂存

git stash 

2、将 HEAD 移动到需要修改的 commit 上

git rebase 9633cf0919^ --interactive

3、找到需要修改的 commit ,将首行的 pick 改成 edit

4、开始着手解决你的 bug

5、 git add 将改动文件添加到暂存

6、 git commit –amend 追加改动到提交

7、git rebase –continue 移动 HEAD 回最新的 commit

8、恢复之前的工作状态

git stash pop

 

四、项目中使用

这时候问题又来了,为什么我提交的时候会有警告,这个又是如何做到的呢?

这时候,我们需要一款 Node 插件 validate-commit-msg 来检查项目中 Commit message 是否规范。

1.首先,安装插件:

npm install --save-dev validate-commit-msg 

2.使用方式一,建立 .vcmrc 文件:

  "types": ["feat", "fix", "docs", "style", "refactor", "perf", "test", "build", "ci", "chore", "revert"], 

  "scope": { 

    "required": false, 

    "allowed": ["*"], 

    "validate": false, 

    "multiple": false 

  }, 

  "warnOnFail": false, 

  "maxSubjectLength": 100, 

  "subjectPattern": ".+", 

  "subjectPatternErrorMsg": "subject does not match subject pattern!", 

  "helpMessage": "", 

  "autoFix": false 

3.使用方式二:写入 package.json

  "config": { 

    "validate-commit-msg": { 

      /* your config here */ 

    } 

  } 

}

4.可是我们如果想自动使用 ghooks 钩子函数呢?

  … 

  "config": { 

    "ghooks": { 

      "pre-commit": "gulp lint", 

      "commit-msg": "validate-commit-msg", 

      "pre-push": "make test", 

      "post-merge": "npm install", 

      "post-rewrite": "npm install", 

      … 

    } 

  } 

  … 

}

在 ghooks 中我们可以做很多事情,当然不只是 validate-commit-msg 哦。

更多细节请参考:validate-commit-msg

 

五、Commit 规范的作用

  • 提供更多的信息,方便排查与回退;

  • 过滤关键字,迅速定位;

  • 方便生成文档;

六、生成 Change log

正如上文提到的生成文档,如果我们的提交都按照规范的话,那就很简单了。生成的文档包括以下三个部分:

  • New features

  • Bug fixes

  • Breaking changes.

每个部分都会罗列相关的 commit ,并且有指向这些 commit 的链接。当然,生成的文档允许手动修改,所以发布前,你还可以添加其他内容。

这里需要使用工具 Conventional Changelog 生成 Change log :

npm install -g conventional-changelog 

cd jartto-domo 

conventional-changelog -p angular -i CHANGELOG.md -w

为了方便使用,可以将其写入 package.json 的 scripts 字段。

  "scripts": { 

    "changelog": "conventional-changelog -p angular -i CHANGELOG.md -w -r 0" 

  } 

}

这样,使用起来就很简单了:

 npm run changelog

到这里,我们所有的问题都搞明白了, Cheers~

七、总结

看完文章,你还会如此放荡不羁吗?你还会随心所欲的编写 Commit 吗?你还会如此 git commit -m "hello world"提交吗?

 

Git版本控制入门

第一节   版本控制系统介绍

版本控制系统(VCS,version controlSystem)

 

可以实现的功能

A.  记录文件的所有历史变化

B.  随时恢复到任何一个历史状态

C.  多人协作开发或修改

D. 错误恢复

E.多功能并行开发

 

版本控制分类

A.  本地版本控制系统

B.  集中化版本控制系统

C.  分布式版本控制系统

 

版本控制系统的基本概念

1.      repository             存放所有文件及其历史信息(也叫仓库)

2.      checkout               取出或切换到指定版本的文件

3.      version                  记录标识一个版本(编号或其他代码)

4.      tag                        记录标识一个主要版本(1.0  2.0 3.0)

 

本地版本控制系统(LVCS)

 

仅运行在本地,可以不使用网络

代表版本类型èRCS(Revision ControlSystem)

优点:简单、很多系统中都内置、适合管理文本文件(如配置文件、文章、信件、简单文档等)

缺点:只合适管理少量文件、不支持基于项目管理、支持文件类型单一、不支持网络、无法实现多人协作。

 

集中式版本控制系统(CVCS)

 

代表版本èCVS(concurrent versionSystem)  subversion

优点  :适合多人团队协作开发、代码集中管理

缺点  :  单点故障、必须联网工作、无法实现单机本地工作

 

分布式版本控制系统(DVCS)

 

代表版本ègit  mercurial(水银)

优点:适合多人团队协作开发、代码集中管理、可以离线工作、每个计算机都是一个完整的仓库

 

第二节  Git版本控制系统

开源的分布式版本控制系统,最初是取代bitkeeper,linus Torvalds开发,用于Linux内核代码管理系统

优点:速度快、设计简单(配置简单)、对非线性开发模式支持好(多分支开发)、完全分布式有能力高效管理类似Linux内核一样的超大规模项目

 

Git原理—快照

使用快照(没有变化的版本库链接到原始版本,变化的保存下来),而不是保存。

每一种版本控制系统都用一种办法追踪不同阶段文件的变化。

其他版本控制系统的工作原理,使用补丁(保存)

 

Git版本控制工作原理

Git原理—文件鉴别和操作

1.      几乎所有操作都是在本地(分布式是指每个电脑都有一个完整的版本库)

2.      通过校验和算法识别文件变化

a)       通过sha-1算法对文件内容或目录结构进行哈希,得出的假烟值作为变化的指纹

3.      多数操作均为添加数据(删除的文件可以通过回溯的原始版本找回)

 

Git原理—文件状态及工作区域

Git repository                   最终确定的文件保存到仓库,成为新的版本,对他人可见

Staging area(index)               暂存区域,暂存已经修改的文件

Working Directory               编辑、修改文件

 

第三节   Git安装

官方网站git-scm.com , 网站提供了多种系统多种方式的下载

yum系列

centos 环境下使用命令#yum install –y git

apt-get系列

Ubuntu环境下使用命令#apt-get install git

Windows系列

Windows环境下载exe安装包,使用默认安装设置。生成git bash,通过git bash可以直接使用类似Linux的命令,默认的使用路径是家目录。

创建一个文件夹,打开文件夹,右击,creat gitrepository here,该文件夹即是本地的仓库。从git bash 中切换到该目录可以看到其识别为仓库的主分支。

 

Mac OS X 系列

在mac os x 中,安装xcode的时候会默认安装git,所以先在terminal中确认是否安装。进入AppStore,搜索Xcode,点击details,点击install,大小通常为1.7GB左右,需要等待一段时间。

打开Xcode, 点击菜单项,进入download,有command linetools一项,传统使用的gcc、git等包含在该项中,默认是没有安装,需手动安装。

 

第四节   Git初始化及仓库创建

Git基础设置

Git安装完成之后,需要进行一些基本信息设置

1.     设置用户名

# git config –global user.name “YourName”

2.     设置用户邮箱

# git config –global user.email “yourmail@Mail.com”

3.     查看设置

# git config --list

用户名和邮箱是提交代码是的标识,可以设置全局账户,也可以针对某个仓库进行设置

 

Git帮助命令

1、获取全局帮助

# git help

2、获取特定命令的帮助

# git help 特定命令名

 

初始化一个新的Git仓库

1、  创建一个文件夹,可以直接使用已有的文件夹

# mkdir book

2、  在文件夹内初始化git,创建git仓库

# cd book

# git init   在book文件夹中创建.git文件夹,所有的仓库数据文件都是保存在.git文件夹中,所说的git仓库即为.git文件夹。

3、   

向Git仓库中添加文件

1、  创建相应的文件,如readme、book.cpp

# touch readme book.cpp

2、  查看当前工作目录下的所有文件的状态

# git status

3、  将相应的文件添加到暂存区域中,可以同时添加多个文件

# git add readme

4、  添加到仓库中

# git commit -m “initrepo”   -m参数后字符串用于注释当前这次提交做了哪些工作

5、  查看git提交历史

# git log

 

Commit后的字符串是SHA码,其后为作者,提交日期,注释信息

 

git修改全局默认的仓库地址

用git写项目的时候,通过命令git config --list看到git bash中有默认的远程仓库地址。
默认第一个项目给出了https://gitee.com/XXX/Music.git,
如果想再第二个项目中引用git地址,那么运行命令

HTML运行复制全屏

1、git remote 查看所有远程仓库, git remote xxx 查看指定远程仓库地址

 

2、git remote rm origin   删除全局默认仓库地址

 

3、git remote add origin XXX    添加一个项目地址

这样就可以初始化全局的git个人信息

还有修改个人信息的时候
如果你没有初始化过。那么直接:
$ git config --global user.name "输入你的用户名"
$ git config --global user.email "输入你的邮箱"

 

这样就可以初始化了。

如果已经初始化过之后,可以用一下命令再次对初始化进行更改

 

$ git config --global --replace-all user.email "输入你的邮箱"
$ git config --global --replace-all user.name "输入你的用户名"

 

然后再查看下
$ git config --list
发现修改成功了。

 

提交文件到远程仓库的命令


git add .                       提交新文件和被修改文件,不包括被删除文件
git add -u                    提交被修改和被删除文件,不包括新文件
git add -A                    提交更更改过的代码
git commit -m "提交行为描述"
git push -u origin branchname           提交代码到远程仓库

复制GitStats项目到本地
cd ~/dev
git clone git://github.com/trybeee/GitStats.git
python ~/dev/gitstats/git-stats /youproject public

拉取分支到本地


git pull origin branchname
git branch -vv           查看分支关联

 

分支管理


git branch                #查看本地分支
git branch --all                 #查看本地和远程仓库的分支
git checkout branchname                 #切换分支
git branch -d branchname                #删除本地分支

 

查看分支提交日志
git log -3

代码回滚到指定版本
git reset --hard e377f60e28c8b84158

查看本地被修改的文件
git status

 

添加tag


git tag -a v1.1f9ba49
git tag -d v1.1f9ba49
git push origin v1.1f9ba49
git push origin --tags

 

Git配置ssh,解决每次提交代码都要输入用户名和密码的问题

 

原因:你使用的是https 方式提交代码,若改为ssh方式提交,问题就会得到有效解决。
首先你可以输入命令:git remote -v,查看自己获取和提交代码的方式,若是https,则执行后显示如下:

c383585ba229b3889eb40b496680fd3d021.jpg

注释:https方式和ssh 方式的git地址区别:
https: https://github.com/gongjenny/vue-come-on.git
ssh : git@github.com:gongjenny/vue-come-on.git

 

解决问题思路:

   删除之前配置的https,改为ssh方式
步骤一:
    删除之前配置的https 提交方式,在终端执行如下命令:
    **git remote rm origin**
    **git remote add origin git@github.com:gongjenny/vue-come-on.git**

    此时,若执行  **git push --set-upstream origin master**  ,会显示如下:

e165f7a8e90eef061747ca36c637bcf44d4.jpg

说明当前权限不够。

eff703192da6bd6feda08b36a68366f5f2f.jpg

步骤二:
    这时就需要你创建ssh的key值了,执行命令如下:
     **ssh-keygen -t rsa -C "用户名"**,直接enter走完,显示如下:
步骤三:
     这时回到自己的github,找到右边的**settings**,点击进入,找到左边**Deploy keys** 进入添加key页面 ,

27b265e1b38b9bec8df66929622f3015c06.jpg

 最后,执行 **git push --set-upstream origin master** 提交代码。

    ###补充:
   若想用 **git push** 简短的命令,需要配置:**git config --global push.default simple**  或  **git config --global push.default matching**

区别在于:前者只提交当前分支的内容,后者可以提交在所有分支的内容。

 

Git如何强制覆盖本地修改

打开项目git命令行,输入

git fetch --all

git reset --hard origin/develop

第一个命令的意思是取回远程端所有修改,第二句的意思是将版本号置到develop这个版本上。当然如果你需要置的是你自己的私有版本,也可以置到私有版本号上。

到这里再使用git pull去取项目的时候,就不会报修改未提交的问题了。

 

直接提交到仓库

设置默认提交,

1、  提交文件

# git commit –a –m“modify book.cpp”

跳过暂存区域,直接提交到仓库中,这里主要用于提交修改的文件,文件必须使用git add 添加到暂存区域中

 

常用git远程仓库实现

1、  使用现有的git网络仓库服务

a)       Github。https://github.com                开源仓库是免费的,私有仓库收费

b)       BitBucket。https://bitbucket.org

2、  搭建自己的git仓库服务器

 

git共享代码步骤

/git步骤/
git pull                            //拉代码
git status                        //查看状态
git add .                         //添加所有 [或者.或者是路径]
git commit -m "加备注"           //提交代码
git push                              //推送到远程分支
/步骤 end/

 

Windows系统中安装使用git

1.安装git
2.打开“Git”->“Git Bash”,若能打开,证明安装成功。
3.配置用户名和email
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
4.(初始化仓库)先创建一个空文件夹,通过cd到达该目录下,通过git init命令把这个目录变成Git可以管理的仓库。
5.新建index.html--->git status--->git add index.html--->git commit -m "imdex.html"
如何新建index.html文件?
可以直接在目录下新建,或者输入touch <name>/touch index.html
6.添加文件到Git仓库,分两步:
使用命令git add <file>(注意,可反复多次使用,添加多个文件)
使用命令git commit -m <message>,完成。
7.每次修改了文件都需要重新添加文件到Git仓库。

 

常用git服务器目录

1、git用户的目录/home/git

2、仓库主目录/home/git/repositories

3、权限管理仓库 /home/git/repositories/gieolite-admin.git

4、/home/git/.gitolite目录

5、ssh服务器的key目录/home/git/.ssh

6、授权文件/home/git/.ssh/authorized_keys

 

删除文件

1、  删除文件

# rm README

2、  从git中删除文件

# git rm README

这里虽然删除了README文件,但是在git的历史版本库中依然存在,可以通过回溯到历史版本库找回

3、  提交操作

# git commit –m “deleteREADME”

4、  通过日志文件查看历史操作

# git log

重命名文件

# git mv book.cppbookSource.cpp

# git commit –m “renamebook.cpp filename to bookSource.cpp”

这里的git mv命令相当于在本地重命名文件,删除仓库的文件,将重命名的文件添加到暂存区域,即:

# mv book.cppbookSource.cpp

# git rm book.cpp

# git addbookSource.cpp

github新建项目

复制项目地址

git clone 粘贴项目地址 文件夹名称

代码放进生成的文件夹

进入目标文件夹

git add *
git commit -m '提交的描述'
git push


git pull [仓库链接]  拉取仓库信息

git checkout [分支名] 选择分支

git branch  查看所有分支

git branch [分支名] 选择某一个分支

git branch -d [分支名] 删除某一个分支

git branch -D [分支名] 强制删除某一个分支

git merge [分支名] 合并某一个分支进来

 

附:gui使用

Git gui,打开仓库所在目录会自动识别当前的仓库,

 

查看master分支历史,可以看到所有的历史版本及修改日志。

 

第五节   Git远程仓库

之前提到的操作都是本地的操作,并没有同步到git服务器上,使得其他开发者无法及时查看到仓库的动态。

 

远程仓库中只保存的.git文件夹

 

Git支持的访问协议

1、  Local 本地型

2、  SSH

3、  Git

4、  HTTP/HTTPS,只能下载数据,不能提交数据

 

git常用的命令 : 

# 分支的创建和合并
git branch yourbranch
git checkout yourbranch
# 切换到yourbranch
# 开发yourbranch分支,然后开发之后与master分支合并
git checkout master
git merge yourbranch
git branch -d yourbranch


# 合并完后删除本地分支
如何将牛人的远程分支更新到自己的本地分支?
# 查看当前项目下远程
git remote
# 增加新的分支链接,例如
git remote add niuren giturl…
# 获取牛人的远程更新
git fetch niuren
# 将牛人的远程更新合并到本地分支
git merge niuren/master
生产力小技巧
codeshelver:给git库做标签
观察的项目如果多了,怎么管理?用codeshelver,安装扩展之后,可以对GitHub项目做标
签。
gollum:利用git与github做wiki
gollum是一个基于git的轻型wiki系统。
GitHubwatcher: 监测重点项目
GitHubwatcher适用于通知不频繁的情景

 

 

 

git学习路径

62da6ce40cdb018e2b73eb7806f3564a9eb.jpg

 

 

参考链接:https://mp.weixin.qq.com/s/pN7MfMLdsOxckENzOwV4CQ

http://gitbook.liuhui998.com/4_9.html

https://blog.csdn.net/capricorn90/article/details/51168444

 

链接:

Git教程  :    http://tanqingbo.com/2017/03/17/Git%E6%95%99%E7%A8%8B/

Git官方文档   :  https://git-scm.com/book/zh/v2

菜鸟 Git 教程:http://www.runoob.com/git/git-tutorial.html

Git教程 :https://www.w3cschool.cn/git/

 阿里云    Git 系列 :    https://yq.aliyun.com/search/articles?spm=a2c4e.11163080.searchteam.1.1c262ec1JNbbf2&q=git

Git 魔法   : http://www.voidcn.com/course/project/nboypv

Git Community Book 中文版   : http://www.voidcn.com/course/project/wpavhb

Pro Git   : http://www.voidcn.com/course/project/pxalzh

闯过这 54 关,点亮你的 Git 技能树 : http://www.voidcn.com/course/project/mqcfft

Git 命令参考 : http://www.voidcn.com/course/project/zifhxm

Git 工作流指南 :    http://www.voidcn.com/course/project/cvdsdt

沉浸式学 Git : http://www.voidcn.com/course/project/rwhooj

Pro Git v2 中文版 :     http://www.voidcn.com/course/project/fgcrkp    

(掘金小册)Git 系列 : https://juejin.im/tag/Git

(易百教程) Git教程  : https://www.yiibai.com/git/

廖雪峰    Git教程   :  https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 

git 操作规范 : https://mp.weixin.qq.com/s/Rtt75DZFNugMrTvrlOLmAw

https://segmentfault.com/a/1190000014461898

Git入门指南,小白工程师必备 : https://mp.weixin.qq.com/s/S8nE-yev4dAiIJ4RLRcHcg

https://opensource.com/article/18/1/step-step-guide-git

码云git本地仓库链接远程仓库  :    https://www.jianshu.com/p/094bbc061c21

本地项目上传到GitHub,记录  :https://www.qdfuns.com/article/42211/68b452c4ca8da4489bdef378ec833946.html

GIT 简单的本地分支上传远程仓库分支命令行    : https://www.qdfuns.com/article/23217/ce41ba88f8336c69fcaf041242defd6d.html

分支管理----解决冲突 :https://www.qdfuns.com/article/39070/ede22b7346be936c3653402498564212.html

分支管理----创建和合并分支  :https://www.qdfuns.com/article/39070/a6eceeca2e20786d748f7fc98f0b9571.html

关于git----分布式版本控制系统----版本回退(简洁版):https://www.qdfuns.com/article/39070/06a07d55026f3648d3ff1a3a785c0b85.html

关于git----分布式版本控制系统----版本回退 : https://www.qdfuns.com/article/39070/594562b99d5c30d6267f9837e98d2679.html

用Git上传文件到Github仓库 : https://www.qdfuns.com/article/45274/021428b88a33cdff7396604fb638c9b2.html

 

搭建自己的小型Git Server  :https://blog.ansheng.me/article/build-your-own-mini-git-server

 

git基础 : https://www.qdfuns.com/article/15102/fba34130a46751269081a24365b8decb.html

Git操作远程库  : https://www.qdfuns.com/article/14681/0a015e9084e78120ce87907cddf55a6e.html

Git常用命令总结  : https://www.qdfuns.com/article/15019/2d2ef6ba076ae59db56988d4e9b98c51.html

Git的简单使用 :   https://www.qdfuns.com/article/14681/a47ee36c9856da591599f56354fef5e3.html

git(8)系列  :https://www.cnblogs.com/wonux/tag/git/

f7de81526f820756702a0f1d57eb5488f83.jpg

 

Git 常用命令速查表(图文+表格) : https://www.jb51.net/article/55442.htm

在 Git 中怎样克隆、修改、添加和删除文件? : https://mp.weixin.qq.com/s/g_1iDs0W1ToGlmYoUbjEpw

手把手指导您使用 Git  : https://mp.weixin.qq.com/s/B7rjSShEFBkuxM7wsNtlkg

Git使用教程:最详细、最傻瓜、最浅显、真正手把手教 : https://mp.weixin.qq.com/s/IDChhMK_BR1dUJemOnwv9Q

Git入门篇 (资料):https://www.jianshu.com/p/9bb7d10390b5

CentOS下git命令行操作(图文教程) : https://www.jb51.net/os/RedHat/511705.html

 脚本之家   Git 基础   : http://shouce.jb51.net/gitbook/index.html

a5da15c51b625059811d19e0091a726b859.jpg

原  Git(一):git基本的工作流程 :  https://blog.csdn.net/ZuoAnYinXiang/article/details/78471574

在 Linux 下搭建 Git 服务器:https://mp.weixin.qq.com/s/05KzYi7w2QDGu9t4KSZNHQ

Git 简明指南:https://mp.weixin.qq.com/s?__biz=MzI3MTI2NzkxMA==&mid=2247485576&idx=1&sn=0abc45398e306bf46307aa1f56447a4a&chksm=eac529a1ddb2a0b7fb531084c62377738b4639fb87add3fba2b6fe184c8256697358d89c00bd&scene=21#wechat_redirect

Git常用命令速查手册 : https://mp.weixin.qq.com/s/SGRcE9EPOu4Tph65tzPzQw

git常见命令  :  http://www.voidcn.com/code/p-uglsvadz-k.html

Git 常用命令速查  :  https://www.jb51.net/article/55442.htm

git 命令速查表   :  https://www.cnblogs.com/yllam/p/5005090.html

git参考手册--文字说明+git速查命令表(图片)   :  https://www.imooc.com/article/14193

Git 工作流程         :  https://www.cnblogs.com/itech/p/5227089.html

Git 进阶指南   :  https://www.cnblogs.com/itech/p/5188942.html

git代码回滚:Reset、Checkout、Revert的选择   :   https://www.cnblogs.com/itech/p/5188933.html

git代码合并:Merge、Rebase的选择    :  https://www.cnblogs.com/itech/p/5188932.html

四种常见 Git 工作流比较     : https://www.cnblogs.com/itech/p/5188929.html

 

Git 教程之服务器搭建详解  :  https://www.jb51.net/article/92248.htm

97e4d173894a0695d05de1619a741a5c047.jpg

Git 删除远程服务器文件同时保留本地文件实例详解 : https://www.jb51.net/article/115029.htm

git恢复删除的分支及内容的方法 : https://www.jb51.net/article/127190.htm

Git如何删除历史记录中的大文件详解 : https://www.jb51.net/article/142924.htm

一键备份gitolite服务器的Shell脚本 : https://www.jb51.net/article/54594.htm

git 删除分支和回滚的实例详解 : https://www.jb51.net/article/122636.htm

Git 详细介绍查看、删除、重命名远程分支和tag  : https://www.jb51.net/article/103895.htm

git分支的创建、切换、合并及删除操作小结  :  https://www.jb51.net/article/97739.htm

git修改和删除功能_动力节点Java学院整理 : https://www.jb51.net/article/121403.htm

CentOS中Git客户端的安装和基础配置教程  :  https://www.jb51.net/os/RedHat/454670.html

CentOS系统上搭建Git版本控制服务器的教程  :  https://www.jb51.net/os/RedHat/454703.html

centos6.5用yum安装git的方法 : https://www.jb51.net/os/RedHat/149671.html

centos在线安装git的方法 : https://www.jb51.net/os/RedHat/149653.html

说说git(一)  :https://www.jianshu.com/p/094309c25a85
说说git(二) : https://www.jianshu.com/p/acaa6452d178
说说git(三):https://www.jianshu.com/p/f723ef16e604

关于 Git SSH 使用的项目实践               : : https://www.jianshu.com/p/814d299541f3

Streamsets项目git环境搭建        :      https://www.jianshu.com/p/9be8f4a7aaa5

使用Nginx反代理访问Git解决413问题                  :        https://www.jianshu.com/p/f06c09933b00

解决git本地多ssh key的问题       :       http://blog.51cto.com/nolinux/1753470

关于 Git SSH 使用的项目实践      :         https://www.jianshu.com/p/814d299541f3

GIt的备份和恢复   :http://blog.51cto.com/sgk2011/1925939

PHP实现git部署的方法    :  https://mp.weixin.qq.com/s/QFpKu8oKoxOEA1BmT7pNhg

 

CentOS系统安装使用版本控制系统Subversion的方法  : https://www.jb51.net/os/RedHat/306574.html 

CentOS安装TortoiseSVN 客户端 : https://www.jb51.net/os/RedHat/220595.html

CentOS 6.3下使用Gitosis安装搭建Git Server教程  : https://www.jb51.net/os/RedHat/216133.html

Centos Nginx + Svbversion配置安装方法分享  :  https://www.jb51.net/os/RedHat/35924.html

 

Git客户端TortoiseGit(Windows系统)的使用方法   :  https://www.jb51.net/article/55440.htm

Linux下Git图形化界面客户端盘点:https://mp.weixin.qq.com/s/UmkBmllqNmcjPYOaGAkSsQ

 

走进Git时代  https://mp.weixin.qq.com/s/K5zq7pfk0yRt_tT-ICFKYA

从SVN迁移到GIT教程: https://m.aliyun.com/yunqi/articles/6046

git和SVN的区别  https://mp.weixin.qq.com/s/JkZpFSaEwVykjiNVaEdulQ

Git 指南 : https://wdxtub.com/2016/08/23/git-guide/

分布式版本控制系统 Git 教程 : https://www.cnblogs.com/jingmoxukong/p/8011012.html

廖雪峰的 git 教程 : https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

脚本之家 Git系列 :  http://so.jb51.net/cse/search?s=10520733385329581432&entry=0&ie=gbk&nsid=0&ie=gbk&q=git

简书  git命令 :https://www.jianshu.com/p/c720c914ce03

Git原理 :https://mp.weixin.qq.com/s/W7qCtOPzfWaG2HybobZYnw

git常用操作 : https://blog.csdn.net/paul_wei2008/article/details/41243031

 git/svn : https://blog.csdn.net/chdhust/article/category/5696673

2a547a584a7777f080db56bf65ff4d0644a.jpg

git : https://blog.csdn.net/m0_37450089/article/category/7308830

0668b14c9424c84005f7002cf8f146c9902.jpg

10分钟搭建git服务器 : https://www.kelen.cc/posts/5b4a0ed1e7d2923d6fcb8d14

eb3e21416b5a22f47c8f975ae9de3fff607.jpg

Linux构建Git代码仓库与自动部署 ; https://juejin.im/post/5b1a394e5188257d5a30c7a7

ea8ca34ffab8c705b87849b8ab4604fde93.jpg

Git原理与高级使用(2) : https://juejin.im/post/5ac9becb518825556f55b360

如何在 git commit message 中玩溜 emoji :  https://juejin.im/post/5b0262edf265da0b9b079fa7

git-新手入职必备操作流程 : https://mp.weixin.qq.com/s/eGPc9fIpsLr3tpxk7L89AA

Git workflow 详谈  :  https://juejin.im/post/5844507761ff4b006c3359a9

Git 本地仓库和裸仓库 : https://juejin.im/post/5842f9b861ff4b005889ade6

创建git私有仓库             : https://www.liaoxuefeng.com/article/001373894410719a19c79d040c84fd4a7492efc60081be1000

git 常见操作          : https://www.jianshu.com/p/c38d00a3736c

Git使用中的一些奇技淫巧  :  https://mp.weixin.qq.com/s/-95z7MCleajm0S_zd8lD4g

git查看本地和创建分支、上传分支、提交代码到分支、删除分支等   : https://blog.csdn.net/Sky786905664/article/details/79257409

转  代码回滚:git reset、git checkout和git revert区别和联系  :  https://blog.csdn.net/Sky786905664/article/details/79150828

转  Git 常用命令大全  :  https://blog.csdn.net/Sky786905664/article/details/78557397

转  GitHub入门:如何上传与下载工程?  :  https://blog.csdn.net/Sky786905664/article/details/54928717

从0学Git     :  https://blog.csdn.net/Sky786905664/article/details/51916276

CentOS6.8 部署Tomcat+jenkins+git+maven+ant 持续集成              :  http://blog.51cto.com/zlyang/1939843

Git 恢复误删除的本地仓库文件             : http://blog.51cto.com/zlyang/1939983

在Linux下搭建Git服务器 (CENTOS 6.6)     :  https://www.jianshu.com/p/40972dd4809e

git常见用法介绍            :     https://www.cnblogs.com/crazyacking/p/6622986.html

git切换到远程分支      :    https://www.cnblogs.com/crazyacking/p/5620655.html

在 Git 中 Checkout 历史版本           :      https://www.cnblogs.com/crazyacking/p/5620635.html

Git 提交的正确姿势:Commit message 编写指南    :     https://www.cnblogs.com/crazyacking/p/5121591.html

(刘逾老师 )使用Git分布式版本控制系统 : https://www.linuxprobe.com/chapter-21.html

才开始学git,慢慢丰富,下面是一些参考资料。

概述:

http://guibin.iteye.com/blog/1014369

工作区、暂存区、版本库的概念

http://www.worldhello.net/2010/11/30/2166.html

progit

http://github.danmarner.com/section/toc/

经验

http://www.open-open.com/lib/list/282?pn=1

http://www.open-open.com/lib/view/open1328069733264.html

 

Git 手册 :https://blog.csdn.net/oDeviloo/article/details/71786401

126d2b8952dda2dcabd85652c859051caf2.jpg

 

 

初见github  :https://www.qdfuns.com/article/14681/cecf58f5ef1b48a125f0383dd69192ef.html

本地项目上传到GitHub,记录 :https://www.qdfuns.com/article/42211/68b452c4ca8da4489bdef378ec833946.html

Git和GitHub资料汇总 :https://blog.csdn.net/u013162035/article/details/78773539

ce699ae1e1d9c932bdbae3ad8d2ebb979fb.jpg

Git与Github使用笔记  :https://blog.csdn.net/column/details/18245.html

c1cca732d68d118cd0030d73f873239b506.jpg

63204679bbb245ab87f9389129ebcabcb66.jpg

第7章 Git和Github的使用 :https://blog.csdn.net/u013162035/article/details/78476880

第8章 github常见操作和常见错误 : https://blog.csdn.net/u013162035/article/details/78476651

第4章 TortoiseGit :https://blog.csdn.net/u013162035/article/details/78475662

搭建自己的小型Git Server               :        https://blog.ansheng.me/article/build-your-own-mini-git-server

 

第3章 Git相关 : https://blog.csdn.net/u013162035/article/details/78466265

第2章 Git命令的基本操作 :https://blog.csdn.net/u013162035/article/details/78465997

第1章 Git入门 :https://blog.csdn.net/u013162035/article/details/78464161

 

 

 

GitLab          GitHub       

GitHub 使用手册 - 基础篇       : http://www.voidcn.com/course/project/fhprwi

(掘金小册) GitHub 系列 : https://juejin.im/tag/GitHub

原  Github项目解析系列   (15):https://blog.csdn.net/qq_23547831/article/category/6273517

GitHub 秘籍 : http://www.voidcn.com/course/project/kqnkrj

(易百教程) GitLab教程  : https://www.yiibai.com/gitlab/

GitHub Pages 指南       : http://www.voidcn.com/course/project/mswxwu

GitHub 开发指南 : http://www.voidcn.com/course/project/fsntud

github使用bash上传之总结版 : https://www.qdfuns.com/article/33603/398ec378be6b1bbd83cbeb9c4d850c7c.html

Linux下GitLab如何安装部署  : https://www.jb51.net/LINUXjishu/512167.html

意淫系列-GitHub教程   :    https://blog.csdn.net/googler_offer/article/details/79971779

3个搜索技巧!在 GitHub上快速找到实用资源!   :https://mp.weixin.qq.com/s/WEDQp8IoIn3YHvvoKeXVIQ

用GitLab搭建自己的私有GitHub库的步骤   :  https://www.jb51.net/article/128349.htm

 

gitlab工作流程简介        :     https://www.cnblogs.com/crazyacking/p/5618091.html

使用GitHub建立个人网站         :          https://www.cnblogs.com/crazyacking/p/4678976.html

TortoiseSVN  1.5 :http://shouce.jb51.net/tsvn/1.5/

私立gitlab服务器   :  http://blog.51cto.com/leoheng/2136882

 

 

加速国内Github访问 : https://www.jianshu.com/p/8d6554919c89

Linux github 连接   :  https://www.jianshu.com/p/babcfd056196

静态博客 Github 并存指南         :     https://wdxtub.com/2016/01/05/hexo-github-site/

gitlab的钩子相关配置      http://fighter.blog.51cto.com/1318618/1670667        

CentOS7.2安装GitLab-CE      :   http://blog.51cto.com/ygqygq2/1861672

windows下使用TortoiseGit在Git@OSC代码托管         :    http://blog.51cto.com/ygqygq2/1718988

TortoiseGit之配置密钥               :    http://blog.51cto.com/ygqygq2/1718283

gitlab数据迁移故障总结         :           http://blog.51cto.com/11291941/1868573

基于 GitLab 的 CI 实践  :  https://mp.weixin.qq.com/s/ZzJnZtZn3sX-JmPfs1uASg

 

(转)SVN-服务器发送了意外的返回值(405 Method Not Allowed)    :   http://blog.chinaunix.net/uid-25266990-id-2948841.html

svn用户管理脚本   :   http://blog.chinaunix.net/uid-25266990-id-2774758.html

私立SVN服务器  :  http://blog.51cto.com/leoheng/2121609

 

 

[SCM]软件配置管理            :  https://www.cnblogs.com/itech/archive/2011/08/26/2154623.html

b5a5451a9fd4ca3b75f4d2ccd535dc891e9.jpg

git 撤销修改以及删除文件 : https://www.cnblogs.com/x123811/p/6047266.html

 

 

 

 

GitLab                     

企业级GitLab仓库环境构建      :        http://blog.51cto.com/zhaochj/1737738

Gitlab 工具Source tree使用    : http://blog.51cto.com/sgk2011/1926198

gitlab更改默认Nginx 置顶    : http://blog.51cto.com/sgk2011/1926119

Gitlab迁移  :    http://blog.51cto.com/sgk2011/1925946

Gitlab用户权限管理  : http://blog.51cto.com/sgk2011/1925922

Gitlab的管理使用手册 荐  :         http://blog.51cto.com/dl528888/1305656

配置gitlab环境实现代码管理及Web Hook测试和ldap认证 荐       : http://blog.51cto.com/rfyiamcool/1365521

Gitlab的管理使用手册 荐  :  http://blog.51cto.com/dl528888/1305656

在centos里安装gitlab 荐 :http://blog.51cto.com/dl528888/1213286

gitlab 灾备  :https://www.jianshu.com/p/78d8805cddbf

 

 

企业里实现代码自动部署、回滚的解决方案——Caphub 荐  :    http://blog.51cto.com/dl528888/1276174

自动化代码部署、代码回滚、命令执行软件之capistrano 荐  :  http://blog.51cto.com/dl528888/1270670

git(4篇)  :  https://www.cnblogs.com/sparkdev/category/905066.html

e0a9e9d84ac378e537e93e1b7bbb7f731d4.jpg

git 操作规范 : 

https://segmentfault.com/a/1190000014461898

4ba8061e8d71bad15ac50ca8109b0bcc388.jpg

 

 

 

 

 

 

转载于:https://my.oschina.net/u/3803405/blog/1922788

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值