【一】git介绍

初始的项目版本管理可以在本地赋值备份之前版本代码,项目较小时还可以,但项目较大时,这种方法显得有点捉襟见肘 ... ...
后期也出现了很多版本管理工具,例如svn、vcs、vss等等...

【二】git安装

安装时分为32位和64位

下载好安装包后,安装即可

  (1)安装验证,右击查看菜单栏

    

  一般使用指令界面即可

【三】初始化git仓储

  PS:这里举例是本地新建项目,并非导入已有项目

(1)本地新建项目文件

  

(2)当前项目目录下右击打开Git工具,路径为当前打开的项目路径

  

(3)初始化仓库

git init

翻译为:已经初始化了一个空的Git仓库在当前文件夹下,如下所示

有的计算机如果无法查看该隐藏文件,则可以设置显示隐藏文件,如下所示

然后将隐藏文件设置为显示状态即可

【四】配置用户名+邮箱

分析:项目开发完后,将项目备份至本地.git隐藏目录

同一个项目可能有多个人协同开发,为了知道项目具体代码贡献者,最好给每个项目贡献人员一个身份识别,所以接下来配置个人信息。

1、姓名:git config --global user.name "tony"
  分析:config表示配置,global表示当前配置为全局配置,以后不用再进行配置 2、邮箱:git config --global user.email "xxx@qq.com"
   分析:user.email为邮箱配置
.

以后可以在.git的logs日志文件里查看提交日期、备案名、贡献者等等... ...

【五】存储代码至本地git仓储

(1)首先验货

git status

查看项目文件变化

(2)门岗验货,将代码放置大门门口

Git有一个暂存区,可以放入新添加的文件或者加入新的改动
git add .或者git add./具体文件路径

解析:

git add .为一次性将所有文件加入缓存区,git add ./url为将指定文件加入缓存区

添加所有文件到门口

(3)将代码从门口放置到仓库

git commit -m"备注"
  分析:commit为提交

【六】代码开发新功能,然后提交

  步骤与之前类似,先验货→放门口→入仓库

git status
git add .
git commit -m"备注"

注意:提交时一定要添加备注,不然会进入vim编辑器模式(功能强大的跨平台文本文件编辑工具),如下所示

相关编辑语法:

一般模式切换到编辑模式:
i,I:进入插入模式,i为从目前光标所在处插入。I为在目前所在行的第一个非空格字符处开始插入。
a,A:进入插入模式。a为从目前光标所在处的下一个字符处开始插入。A为从所在行的最后一个字符处开始插入。
o,O:进入插入模式。o为在下一行插入。O为在上一行插入。
r,R:进入替换模式。r只替换光标所在那个字符一次。R会一直替换光标所在字符,直到按下Esc键。 一般模式切换到命令行:
:w:将编辑的数据写入到硬盘中。
:q:离开vi.后面加!为强制离开。
:wq:保存后离开。:wq!为强制保存后离开。

q为quit退出

【七】查看状态

git status

git status命令用于显示工作目录和暂存区的状态。使用此命令能看到那些修改被暂存到了, 哪些没有, 哪些文件没有被Git tracked到。

【八】查看日志

git log

精简方式查看日志

git log --oneline

【九】忽略文件

【十】git版本回退+版本切换(通过版本号进行切换)

(1)查看简洁日志

git log --oneline

版本回退,只是本地的。不会影响git库中的内容

(2)查看具体版本号

git log --pretty=oneline

(3)回退到具体的版本号

git rset --hard 版本号

(4)撤销回退

git reset --hard HEAD@{}

直接回到刚才的那个结点,{}中表示的是结点的序号

(5)除了以上回退方法,还有另一种

git reset --hard Head~0
  0为当前
  1为上一个

【十一】创建+切换+合并+删除分支

前言:默认主分支master

(1)创建分支

git branch 分支名

(2)切换分支

git checkoout 分支名

切换到指定分支

(3)查看当前分支

git branch

(4)分支合并

git merge 分支名

将新建分支合并到主分支,也可以合并到其他指定分支

(5)删除分支

git branch -d 分支名

注意:不能在当前分支上删除本分支

例如,主分支上删除其他分支

【十二】合并分支时冲突

冲突场景:在其他分支上做完操作后,最后切换回主分支进行合并,但在合并前不小心修改了主分支上代码,此时再合并便会合并失败,出现合并冲突

接下来需要手动处理冲突,此时打开文件查看

接下来人为判断进行删减,如下所示

最后重新提交即可

【十三】本地git库部署到线上

(1)前言

目前为止,只是在一个电脑上做版本管理,当进行团队协作时,便需要结合线上代码部署平台,进行线上线下团队管理

PS:GitHub不是git

如果想把本地代码提交到线上,这里需要用到git push指令

(2)登录代码托管平台,这里我先选择GitHub,国内常用的还有码云

(3)新建线上仓库

创建后如下所示

(4)复制HTTPS地址

提交→将本地git主分支代码提交到线上主分支

git push https://github.com/dfs12/test.git master

(5)身份验证

第一次提交时,会要求输入用户名和密码,这里的用户名和密码指的是GitHub的用户名和密码。

【十四】克隆/拉取线上代码

(1)新开发人员加入后需要拉取线上仓库到本地,所以首先需要在本地建立项目文件夹,并初始化git仓库

(2)拉取代码

往线上部署是推送git push,从线上往本地拉取为git pull

git pull 远程git地址 master

接下来查看本地文件,发现已经拉取成功

(3)除了使用git pull拉取远程仓库,还可以使用克隆方法

git clone 线上地址

(4)git pull和git clone区别

git clone会在本地创建与远程仓库相同名字文件夹
git pull需要先在本地初始化仓库,再拉取远程主分支

(5)开发规范

开发过程一般部署git push,拉取git pull

【十五】通过ssh方式上传代码

目前为止,通过HTTP方式上传代码时,需要GitHub用户名和密码,如果多人开发需要同时知晓,安全性较低,此时可以通过SSH方式

ssh方式上传代码,可以无需输入用户名和密码,即可通过验证。
这里验证方式,涉及到公钥和私钥

(1)添加生成公钥

生成公钥

ssh-keygen -t rsa -C <your_email@example.com>( 你的邮箱),连续点击 Enter 键即可

https://git-scm.com/book/zh/v2/%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84-Git-%E7%94%9F%E6%88%90-SSH-%E5%85%AC%E9%92%A5

查看公钥

cd ~/.ssh
ls
cat ~/.ssh/id_rsa.pub

https://coding.net/help/doc/git/ssh-key.html

然后将公钥复制到GitHub

(2)查看公钥

除了上面方式,也可以根据路径找到相应文件进行查看

.pub后缀为公钥
另一个为私钥

(3)添加

之后便可以通过SSH方式直接push代码

这个公钥和私钥的作用有什么用?
公钥我们一般是给服务器的,他们到时候在权限中加入我给的公钥,然后当我从远地仓库中下载项目的时候,我在git clone xxx的时候,
那个服务器我通过他的绑定的公钥来匹配我的私钥,这个时候,如果匹配,则就可以正常下载,如果不匹配,则失败.

【十六】模拟两个用户同时开发

(1)前言

  当前小明已经push推送完毕,接下来新加入的人员小红开始拉取代码

(2)拉取

git pull方式拉取代码时
、新建本地文件夹
、初始化本地git仓库,生成隐藏目录.git
、git pull 远程仓库地址 master

【十七】多人协同开发

多人协同开发经常出现代码冲突,此时手动人为判断即可

【十八】push与pull先后顺序

多人协同开发时,每次先拉取git pull,然后再推送 git push

【十九】git pull与git push简写

目前为止,每次拉取或者上传代码时,都会要求输入远程仓库地址,有些麻烦

使用以下命令配置远程存储库

git remote add 变量名 远程仓库地址
remote译为远程,添加远程地址

例如

git remote add origin 远程仓库地址

输入完成后,以后再次提交时便不用再输入git远程仓库地址,将origin替换其即可

注意:只针对当前配置好的目录下有效,如果没有配置,则在其他目录下均无效。

【二十】关联当前本地分支与远程分支

第一次提交时可以通过

git push origin -u master

通过-u将本地分支与远程分支进行关联,此后再次提交,便不用在最后输入origin与master

以后再提交时只需

git push

同理,此时拉取时也直接输入git pull即可。

【小结】

()初始化git仓库
git init
()配置用户名+邮箱
  姓名:git config --global user.name "tony"
  邮箱:git config --global user.email "xxx@qq.com"
()存储代码至本地git仓储
  git status查看项目文件变化
  git add .为一次性将所有文件加入缓存区,git add ./url为将指定文件加入缓存区
  git commit -m"备注"
()vim编辑器模式(功能强大的跨平台文本文件编辑工具)

    一般模式切换到编辑模式:
    i,I:进入插入模式,i为从目前光标所在处插入。I为在目前所在行的第一个非空格字符处开始插入。
    a,A:进入插入模式。a为从目前光标所在处的下一个字符处开始插入。A为从所在行的最后一个字符处开始插入。
    o,O:进入插入模式。o为在下一行插入。O为在上一行插入。
    r,R:进入替换模式。r只替换光标所在那个字符一次。R会一直替换光标所在字符,直到按下Esc键。

    一般模式切换到命令行:
    :w:将编辑的数据写入到硬盘中。
    :q:离开vi.后面加!为强制离开。
    :wq:保存后离开。:wq!为强制保存后离开

(5)查看日志
  git log查看完整日志
  git log --oneline查看简洁日志
(6)版本回退/切换
  1、git reset --hard Head~0
  2、查看具体版本git log --pretty=oneline,然后切换到指定版本git rset --hard 版本号
  3、撤销回退git reset --hard HEAD@{1}
(7)创建+切换+合并+删除分支
  1、创建:git branch 分支名
  2、切换:git checkoout 分支名
  3、查看分支:git branch
  4、合并分支:git merge 分支名
  5、删除分支:git branch -d 分支名
(8)GitHub不是git
(9)本地git库部署到线上
  1、登录代码托管平台,这里我先选择GitHub,国内常用的还有码云
  2、新建线上仓库
  3、复制仓库HTTPS地址
  4、提交→将本地git主分支代码提交到线上主分支
  5、身份验证:第一次提交时,会要求输入用户名和密码,这里的用户名和密码指的是GitHub的用户名和密码
(10)克隆/拉取线上代码
  1、新开发人员加入后需要拉取线上仓库到本地,所以首先需要在本地建立项目文件夹,并初始化git仓库
  2、拉取代码:往线上部署是推送git push,从线上往本地拉取为git pull
  3、除了使用git pull拉取远程仓库,还可以使用克隆方法:git clone 线上地址
(11)git pull与git clone区别
  1、git clone会在本地创建与远程仓库相同名字文件夹
  2、git pull需要先在本地初始化仓库,再拉取远程主分支
(12)通过ssh方式上传代码
  1、目前为止,通过HTTP方式上传代码时,需要GitHub用户名和密码,如果多人开发需要同时知晓,安全性较低,此时可以通过SSH方式.
    ssh方式上传代码,可以无需输入用户名和密码,即可通过验证。这里验证方式,涉及到公钥和私钥
  2、添加生成公钥
    ssh-keygen -t rsa -C <your_email@example.com>( 你的邮箱),连续点击 Enter 键即可
  3、查看公钥
    两种方式,一种在本地查看,一种通过指令查看
      ①cd ~/.ssh
      ②ls
      ③cat ~/.ssh/id_rsa.pub
    另外除了上面方式,也可以根据路径找到相应文件进行查看
      .pub后缀为公钥,另一个为私钥
(13)这个公钥和私钥的作用有什么用?
  公钥我们一般是给服务器的,他们到时候在权限中加入我给的公钥,然后当我从远地仓库中下载项目的时候,我在git clone xxx的时候,
  那个服务器我通过他的绑定的公钥来匹配我的私钥,这个时候,如果匹配,则就可以正常下载,如果不匹配,则失败
(14)git pull与git push简写
  目前为止,每次拉取或者上传代码时,都会要求输入远程仓库地址,有些麻烦
  使用以下命令配置远程存储库
  指令:git remote add 变量名 远程仓库地址
  输入完成后,以后再次提交时便不用再输入git远程仓库地址,将origin替换其即可
(15)简化提交git push
  第一次提交时可以通过
  指令:git push origin -u master
  通过-u将本地分支与远程分支进行关联,此后再次提交,便不用在最后输入origin与master
  以后再提交时只需git push
(16)添加关联本地分支+远程分支
  git remote add origin https://dev.33.cn/wangdong/alioss-file.git
(17)取消关联本地分支+远程分支
  如果本地代码,已经关联了远程分支,则需要先解除关联
  git remote remove origin

.

git笔录的更多相关文章

  1. git仓库管理笔录

    Git是目前世界上最先进的分布式版本控制系统(没有之一). 小明做了个个人博客,放到了Git 仓库里面.第二天换了台电脑,只需要 git clone  克隆一下git 远程仓库的代码到本地即可.然后他 ...

  2. Java标准I/O流编程一览笔录

    I/O是什么 I/O 是Input/Output(输入.输出)的简称,输入流可以理解为向内存输入,输出流是从内存输出. 流 流是一个连续的数据流,可以从流中读取数据,也可以往流中写数据.流与数据源,或 ...

  3. Java 标准 IO 流编程一览笔录( 下 )

    8.回推流:PushbackInputStream与PushbackReader PushbackInputStream/PushbackReader 用于解析InputStream/Reader内的 ...

  4. Git 子模块 - submodule

    有种情况我们经常会遇到:某个工作中的项目需要包含并使用另一个项目. 也许是第三方库,或者你 独立开发的,用于多个父项目的库. 现在问题来了:你想要把它们当做两个独立的项目,同时又想在 一个项目中使用另 ...

  5. Git 在团队中的最佳实践--如何正确使用Git Flow

    我们已经从SVN 切换到Git很多年了,现在几乎所有的项目都在使用Github管理, 本篇文章讲一下为什么使用Git, 以及如何在团队中正确使用. Git的优点 Git的优点很多,但是这里只列出我认为 ...

  6. Git与Repo入门

    版本控制 版本控制是什么已不用在说了,就是记录我们对文件.目录或工程等的修改历史,方便查看更改历史,备份以便恢复以前的版本,多人协作... 一.原始版本控制 最原始的版本控制是纯手工的版本控制:修改文 ...

  7. Git Bash的一些命令和配置

    查看git版本号: git --version 如果是第一次使用Git,你需要设置署名和邮箱: $ git config --global user.name "用户名" $ gi ...

  8. 在Ubuntu 16.10 安装 git 并上传代码至 git.oschina.net

    1. 注册一个账号和创建项目 先在git.oschina.net上注册一个账号和新建一个project ,如project name 是"myTest". 2.安装git sudo ...

  9. 史上最详细git教程

    题外话 虽然这个标题很惊悚,不过还是把你骗进来了,哈哈-各位看官不要着急,耐心往下看 Git是什么 Git是目前世界上最先进的分布式版本控制系统. SVN与Git的最主要的区别 SVN是集中式版本控制 ...

随机推荐

  1. 小程序登录解密用户数据encryptedData -41001: encodingAesKey 非法

    问题: 做小程序微信授权登录,先获取code,然后去获取到session_key和open_id,再拿到encryptedData,传到服务器去解密拿到用户信息,但是有时成功,有时返回-41001错误 ...

  2. ODA: After Apply ODA 12.2.1.2.0 Patch, Unable to Create TableSpace Due to [ORA-15001: diskgroup "DATA" does not exist or is not mounted | ORA-15040: diskgroup is incomplete] (Doc ID 2375553.1)

    ODA: After Apply ODA 12.2.1.2.0 Patch, Unable to Create TableSpace Due to [ORA-15001: diskgroup &quo ...

  3. 005.MongoDB索引及聚合

    一 MongoDB 索引 索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录. 这种扫描全集合的查询效率是非常低的,特别在处 ...

  4. acwing 652. 切蛋糕

    题目地址 今天是小Z的生日,同学们为他带来了一块蛋糕. 这块蛋糕是一个长方体,被用不同色彩分成了N个相同的小块,每小块都有对应的幸运值. 小Z作为寿星,自然希望吃到的第一块蛋糕的幸运值总和最大,但小Z ...

  5. WPf 带滚动条WrapPanel 自动换行 和控件右键菜单

    原文:WPf 带滚动条WrapPanel 自动换行 和控件右键菜单 技能点包括 WPf 样式的引用 数据的验证和绑定 比较适合初学者 前台: <Window.Resources> < ...

  6. 暑期班--JAVA无敌课程---第一天-Day01-----Java基础

    1.Java发展历史 1.1Games Golsing Java创始人 2.What is JDK 3.记本本开发第一个Java程序 巴拉巴拉 巴拉巴拉 巴拉巴拉 巴拉巴拉 巴拉巴拉 巴拉巴拉 巴拉巴 ...

  7. IT兄弟连 HTML5教程 HTML语言的语法 1

    HTML是文本类型的语言,和其他任何一门语言相比,语法都是最简单的.但在编写HTML文件时,必须遵循HTML的语法规则.一个完整的HTML文件由标题.段落.列表.表格.文本,即嵌入的各种对象所组成,这 ...

  8. 洛谷 P4999(数位DP)

    ###洛谷 P4999 题目链接 ### 题目大意:给你一个区间,求这段区间中所有数的,数位上的,数字之和. 分析: 这题与 洛谷 P2602 相似,稍微改一下就可以了. 求出 0 ~ 9 的个数,然 ...

  9. Python之基本运算符

    基本运算符 1.算符运算符 运算符 描述 例子 + 两个对象相加 a+b - 两个对象相减 a-b * 两个数相乘或返回一个被重复若干次的字符串 a*b / 两个数相除 a/b % 取模,返回除法的余 ...

  10. 10、Fiddler中设置断点修改Response

    当然Fiddler中也能修改Response 第一种:打开Fiddler 点击Rules-> Automatic Breakpoint  ->After Response  (这种方法会中 ...