Git是什么

Git是目前世界上最先进的分布式版本控制系统。

这个软件用起来就应该像这个样子,能记录每次文件的改动:

举个栗子 :       版本 用户 说明 日期

1 张三 删除了软件服务条款5 7/12 10:38
2 张三 增加了License人数限制 7/12 18:09
3 李四 财务部门调整了合同金额 7/13 9:51
4 张三 延长了免费升级周期 7/14 15:17

这样,你就结束了手动管理多个“版本”的史前时代,进入到版本控制的20世纪。

Git的安装

去官网(https://git-scm.com/downloads)下载安装就行了,

里安装完什么都不用配置,直接可以使用,

mac用户可以不用安装,因为系统自带,如果嫌版本老,可以卸掉安装新版本

Git的使用

安装完成以后,你可以右键会多出

这里我们先不用GIT GUI,先学git的指令,因为GUI也是调用指令来工作的,学会了指令,GUI的图形化操作也就会了。

首先,我们在桌面创建一个demo文件夹,进入demo,右键,选择Git Bash Here,会出现

这就是git bash界面,可以输入git指令的界面(mac用户进入终端)

输入git --version 查看安装的git版本

在介绍git之前我们来看一张git的结构图

这张图就是git的原理图

工作区间:你的代码是写在工作区间的,是我们直接编辑的地方,如idea打开的项目,notepad++打开的文件

暂存区(缓存区):暂时存储你的代码的地方

本地仓库:存放已经提交的数据

远程仓库:存放提交的数据的公共仓库,如github,公司的gitla

接下来,我们就结合这个图演示git指令,首先还是刚才的那个bash窗口:

git init

创建一个仓库,你会看到demo中多个一个隐藏文件夹.git,这个时候就是把demo文件夹变成一个git的本地仓库了,这里面所有的文件都会被git管理,我们添加一个test1.txt文件

git status

查看仓库的修改情况

你会看见我们添加的文件是红色的,这个时候文件是在工作区间的

(untracked files:表示这个文件是新加的)

git add test1.txt

把文件test1.txt添加到暂存区

(一般使用git add . 表示添加当前文件夹下的所有修改都添加到暂存区)

git status

会看见添加到暂存区的文件都是绿色的

git commit -m '注释'

把暂存区的代码提交到本地仓库,提交只能提交暂存区的代码,工作区间的代码是不会被提交的,提交时必须添加注释,这是git强制要求的,防止你提交的多了,不知道每次提交的修改是什么,引号里面写注释

git status

这个时候就没有了

git push origin master

把本地仓库的提交代码推到远程仓库,origin master表示远程的master分支,这个时候你会发现报错了,

因为我们的本地仓库是刚刚新建的,并没有绑定任何远程仓库,所以git不知道往哪推,

那么我们要把本地仓库和远程仓库绑定

首先得有一个远程仓库才行,以github为例,创建一个远程仓库

这个时候远程仓库就创建好了

git remote add origin https://github.com/**********/demo.git

把本地仓库和远程仓库绑定,这里的地址写你自己的

这个时候会让你输入你的github的用户名和密码

然后自动会在远程创建一个master分支,上面的报错是网络导致的,请忽略

这时查看远程就会有test1.txt这个文件了

开发人员的必备工具Git(初级)的更多相关文章

  1. fir.im Weekly - 17 个提升 iOS 开发效率的必备工具

    本期 fir.im Weekly 精选了一些iOS 开发工具和动画源码分享,希望每个开发者能专注效率.实用.灵感.  iOS开发工具--如何优化ipa包大小 @iOS程序犭袁 推荐了关于"如 ...

  2. Android开发之常用必备工具类图片bitmap转成字符串string与String字符串转换为bitmap图片格式

    作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 QQ986945193 博客园主页:http://www.cnblogs.com/mcxiaobing ...

  3. C++ //继承中的对象模型 //利用开发人员命令提示工具查看对象模型 //父类中所有非静态成员属性都会被 子类继承下去 //父类中私有成员属性 是被编译器给隐藏了 因此是访问不到 但是确实被继承下去了

    1 //继承方式 2 //语法:class 子类 :继承方式 父类 3 //继承方式 三种: 4 //1.公共继承 5 //2.保护继承 6 //3.私有继承 7 8 /* 9 #include &l ...

  4. 如何用vs2013开发人员命令提示工具执行一个方法(一个简单的demo)

    在任何一个编辑器中编写一个静态的Main方法,必须是静态且名为Main的方法,并将Main方法所在的类文件命名为yang.cs(这个名字随便命名),如图-1. 图-1 打开你的vs2013开发人员命令 ...

  5. Android开发和调试必备工具-SDK Tools

    原文链接:http://android.eoe.cn/topic/android_sdk SDK Tools是Android SDK的一个可下载部分,它包括Android SDK的开发和调试的所有工具 ...

  6. 【Java】JAVA开发人员常见环境工具安装

    1.安装配置JDK1.7:jdk-7u45-windows-x64.exe,环境变量配置:JAVA_HOME---[F:\1024\jdk1.7],CLASSPATH---[.;%JAVA_HOME% ...

  7. 每个Java开发人员都应该知道的10个基本工具

    大家好,我们已经在2019年的第9个月,我相信你们所有人已经在2019年学到了什么,以及如何实现这些目标.我一直在写一系列文章,为你提供一些关于你可以学习和改进的想法,以便在2019年成为一个更好的. ...

  8. 怎样才能提交一个让开发人员拍手叫好的bug单

    怎样才能提交一个让开发人员拍手叫好的bug单 软件测试人员写得最多的文档就是测试用例和BUG,现在测试用例和BUG都没有标准的模板,每个公司使用的缺陷管理工具都有可能不一样,如果你换了一家公司就有可能 ...

  9. [荐][转]为何应该使用 MacOS X(论GUI环境下开发人员对软件的配置与重用)

    一周前我和 Tinyfool 闲聊苹果操作系统,都认为对于开发人员来说,苹果操作系统(MacOS)是上佳的选择.Tinyfool 笔头很快,当即就写了一篇长文章,我则笔头很慢,今天才全部码好.他的文章 ...

随机推荐

  1. thinter中combobox下拉选择控件(九)

    combobox控件,下拉菜单控件 combobox控件在tkinter中的ttk下 简单的实现下: import tkinter from tkinter import ttk # 导入ttk模块, ...

  2. Python将html转化为pdf

    前言 前面我们对博客园的文章进行了爬取,结果比较令人满意,可以一下子下载某个博主的所有文章了.但是,我们获取的只有文章中的文本内容,并且是没有排版的,看起来也比较费劲... 咋么办的?一个比较好的方法 ...

  3. GO语言.树莓派.环境安装和测试

    Go是Google开发的一种静态强类型.编译型.并发型,并具有垃圾回收功能的编程语言.为了方便搜索和识别,有时会将其称为Golang 记录一下如何在树莓派上安装语言环境 第一步: 下载安装包 http ...

  4. maintenance.go

    package, && req.Alarm == pb.AlarmType_NONE {         ar, err := m.AlarmList(ctx)         if ...

  5. bzoj3812&uoj37 主旋律

    正着做不好做,于是我们考虑反着来,如何计算一个点集s的答案呢,一定是所有的方案减去不合法的方案,不合法的方案一定是缩完点后是一个DAG,那么就一定有度数为0的scc,于是我们枚举s的子集,就是说这些点 ...

  6. ZOJ_2314_Reactor Cooling_有上下界可行流模板

    ZOJ_2314_Reactor Cooling_有上下界可行流模板 The terrorist group leaded by a well known international terroris ...

  7. oracle改造常见问题

    一. to_char: 将数值型或者日期型转化为字符型 (string) 日期到字符操作 select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from du ...

  8. java 判断是否为中文字符,部分,。中文符号不能识别

    public static void main(String[] args) { int i = 0; for (char c : ",.判断一个字符串是否有中文一般情况是利用Unicode ...

  9. 关于EffictiveC++笔记

    我根据自己的理解,对原文的精华部分进行了提炼,并在一些难以理解的地方加上了自己的"可能比较准确"的「翻译」.

  10. C++实现离散数学的关系类,支持传递闭包运算

    #include <vector> #include <cassert> #include <iostream> using namespace std; clas ...