我正在参与「启航计划」

Git的概述

什么是Git

Git是一个开源的分布式版别操控系统,用于敏捷高效地处理任何或小或大的项目。 Git 是 Linus Torvalds 为了帮助办理 Linux 内核开发而开发的一个开放源码的版别操控软件。 Git 与常用的版别操控东西 CVS, Subversion 等不同,它采用了分布式版别库的方法,不必服务器端软件支撑。

实际运用场景

  • 备份
  • 代码复原
  • 协同开发
  • 追溯问题代码的编写人和编写时刻

版别操控方法

  1. 会集式版别操控东西:版别库是会集放在中心服务器中,必须联网才干作业,个人修正后提交给中心版别库。比方:SVN和CVS

    一篇文章带你入门Git,将代码推送拉取到远程仓库

  2. 分布式版别操控东西:分布式版别操控系统没有“中心服务器”,每个人的电脑都是一个完整的版别库,不需要联网就能够作业,多人协作只需要各自的修正推送给对方,就能相互看到对方的修正了。比方:Git

优点

  • 速度快
  • 简单的规划
  • 对非线性开发模式的强力支撑
  • 能够高效的办理Linux内核一样的超大规模项目

作业流程

一篇文章带你入门Git,将代码推送拉取到远程仓库
指令:

  1. clone(克隆):从长途库房中克隆代码到本地库房。fetch(抓取):从长途库,抓取到本地库房,不进行任何兼并动作(一般少很少用)

  2. checkout(检出):从本地库房中检出一个库房分支如何进行批改

  3. add(增加):在提交前先将代码提交到暂存区

  4. commit(提交):提交到本地库房。本地库房中保存修正的各个历史版别

  5. pull(拉取):从长途库房拉到本地库,主动进行兼并(merge),然后放在作业区,相当于fetch+merge

  6. push(推送):修正完成后,需要和团队成员共享代码时,将代码推送到长途库房

一篇文章带你入门Git,将代码推送拉取到远程仓库

Git的装置和常用指令

装置

下载地址:Git – Downloads (git-scm.com)

装置成功后鼠标右击后呈现:

一篇文章带你入门Git,将代码推送拉取到远程仓库

注:

  • Git GUI:Git提供的图形界面东西
  • Git Bash:Git提供的指令行东西

获取本地库房

打开Git Bash创立一个新的git库房: mkdir git-test01

在目录中履行git init就能够创立一个 Git 库房了,这时分能够在文件夹中能够看到.git文件,但是.git文件默认是躲藏的,需要将将window设置显现躲藏的项目,如图:

一篇文章带你入门Git,将代码推送拉取到远程仓库

根底操作指令

  • git add : 作业区(workspace) –> 暂存区(index)
  • git add .:把一切项目提交到暂存区
  • git branch:检查分支
  • git commit: 暂存区(index) –> 本地库房(repository)
  • git commit -m “注释内容”:提交暂存区到本地库房
  • git checkout:切换分支
  • git status:检查修正的状况
  • git log:检查日志
  • git reset --hard commitID:版别回退
  • git reflog:这个指令能够检查已经删去的提交记录

git-log的装备:为了更好的检查日志,精简的方法看日志

在系统用户下创立一个.bashrc文件 文件里边的内容:

//用于输出git提交日志
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
//用于输出当前目录一切文件及基本信息
alias ll='ls -al'

然后打开git bush输入:source ~/.bashrc

一篇文章带你入门Git,将代码推送拉取到远程仓库

装备成功后的效果图比照:git log 和 git-log

一篇文章带你入门Git,将代码推送拉取到远程仓库

git的分支办理

几乎每一种版别操控系统都以某种形式支撑分支,一个分支代表一条独立的开发线。 运用分支意味着你能够从开发主线上别离开来,然后在不影响主线的一起继续作业。

检查分支:git branch

一篇文章带你入门Git,将代码推送拉取到远程仓库

增加一个分支:git branch 分支名

一篇文章带你入门Git,将代码推送拉取到远程仓库

分支直观的展现:git-log

一篇文章带你入门Git,将代码推送拉取到远程仓库

切换分支:git checkout 分支名,其中HEAD表示的就是在当前的分支

一篇文章带你入门Git,将代码推送拉取到远程仓库

增加分支而且切换到该分支:git checkout -b 分支名

一篇文章带你入门Git,将代码推送拉取到远程仓库

兼并分支

兼并分支一般都是把其他分支增加到master上,所以首先需要切换到master分支

输入:git merge 分支名

一篇文章带你入门Git,将代码推送拉取到远程仓库

当想删去分支的时分能够用指令:git branch -d 分支名

Git长途库房

假如想经过 Git 共享你的代码或许与其他开发人员协作。 你就需要将数据放到一台其他开发人员能够连接的服务器上。一般用GitHub或许giteegitlab

创立长途程库

以gitee为例,创立一个库房

一篇文章带你入门Git,将代码推送拉取到远程仓库

装备SSH公钥

生成密钥

ssh-keygen -t rsa

然后不断回车,假如公钥已经存在会主动覆盖

获取密钥

cat ~/.ssh/id_rsa.pub

把生成的公钥粘贴到gitee

一篇文章带你入门Git,将代码推送拉取到远程仓库

检查是否装备成功:ssh -T git@gitee.com

一篇文章带你入门Git,将代码推送拉取到远程仓库

增加长途库房

装备gitee为例:

增加长途库房(origin后边跟上长途库房的地址):

git remote add origin https://gitee.com/gao-bintao/git_test.git

检查是否增加成功:

git remote

一篇文章带你入门Git,将代码推送拉取到远程仓库

推送到长途库房

git push origin master

然后刷新gitee就能够看到上传的文件了

一篇文章带你入门Git,将代码推送拉取到远程仓库

克隆(clone)

把长途的库房克隆到本地库房

git clone 项目的地址

抓取和拉取

抓取: git fetch [remote name] [branch name]

  • 将库房里的更新都抓取到本地,不会进行兼并
  • 假如不指定长途称号和分支名,则抓取一切分支

拉取:git pull [remote name] [branch name]

  • 将长途库房的修正拉到本地并主动进行兼并,相当于fetch+merge
  • 假如不指定长途称号和分支名,则抓取一切并更新当前分支

总结

对于git的学习有利于实战中团队协作的开发,一起拉取代码也变得更快。热爱编程的小伙伴也能够在gitee和GitHub上面找到优异的开源项目。