由于软件构造课程需要,学习使用git,以下作为学习笔记。

  

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

 1.基本信息设置(设置签名)

 命令

       项目级别/仓库级别:仅在当前本地库范围内有效

git config

  系统用户级别:登录当前操作系统的用户范围

git config –global

    ls -lA|less   查看文件内容

  级别优先级:就近原则->项目级别优先于系统用户级别

  1.设置用户名

    git config –global user.name ‘hiter1170301015’

  2.设置用户邮箱

    git config –global user.email ‘1411021410@qq.com’

  3.查看设置

    git config –list

注:该设置在GitHub仓库主页显示谁提交了该文件

辨析:设置的签名和登录远程库(代码托管中心)的账号和密码没有任何关系

2.初始化一个新的Git库

  1. 创建文件夹

      mkdir test

  1. 在文件夹内初始化git(创建git仓库)

      cd test

      git init

  注:.git目录中存放的是本地库相关的子目录和文件,不要删除,也不可随意修改

3.向仓库添加文件

    touch xx(文件) 创建新文件

    git status 查看文件状态

    git add hello.c 添加至暂存区

    git status

    git commit -m ‘提交描述’ 将文件从暂存区提交到仓库

    git rm –cached hello.c  将文件从暂存区撤回至工作区

4.修改文件

  nano hello.c

  重复向仓库添加文件

5.删除仓库文件

  1.)删除文件

    rm -rf hello.c

  2.)从git中删除文件

    git rm hello.c

  3.)提交操作

  注:git rm -f hello.c 同时删除工作区和暂存区文件

6.永久删除文件后找回

找回:回退到某一个记录

7.添加至暂存区的删除文件找回

        git reset –hard HEAD

注:删除后可找回,需要文件存在时的状态提交至本地库

git log

git log –pretty=oneline

git log --oneline

git reflog  显示到某个版本需要几步 HEAD@{移动到当前版本需要多少步}

多屏显示控制方式:

空格向下翻页

b向上翻页

q退出

8.前进后退(使用指针head)

  基于索引值操作 git reset –hard [局部索引值]

  使用^符号:只能后退

     git reset –hard HEAD^ 回退一步

    git reset –hard HEAD^^ 回退两步

    git reset –hard HEAD^^^ 回退三步

  使用~符号

git reset –hard HEAD~3 回退三步

 

注:reset命令的三个参数对比

        --soft 仅仅在本地库移动HEAD指针

        --mixed 在本地库移动HEAD指针,重置暂存区

        --hard 在本地库移动HEAD指针,重置暂存区和工作区

比较文件差异 git diff [文件名]

将工作区中的文件和暂存区中进行比较

结果

  git diff [本地库中历史版本] [文件名]

          将工作区中文件和本地库历史记录比较

  注:不带文件名可以比较多个文件

二、分支

  在版本控制过程中,使用多条线同时推进多个任务

  优点:同时并行推进多个功能开发,提高开发效率;各个分支在开发过程之中,如果某一个分支开发失败,不会对其他分支有任何影响,失败的分支删除后重新开始即可。

  git branch -v 查看所有分支

  git branch 分支名 新建分支

  git checkout 分支名 切换到某一分支

  在不同分支上进行修改 修改后哈希值发生改变

1.合并分支

        切换到接受修改的分支上(被合并,增加新内容),执行merge命令

将hot_fix合并至master

2.合并冲突 修改不同分支同一文件的同一位置

删除特殊符号,修改文件内容后,即可进行合并。

三、git远程仓库管理

新建别名 git remote add 别名 原名(远程库原地址)

本地库推送至远程库 git push 别名 分支名

1.Git克隆操作

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

  git clone 仓库地址

  效果:完整的把远程库下载到本地;创建origin远程地址别名;初始化本地库

2.远程库的拉取

   pull=fetch+merge

    1)git fetch [远程库地址别名] [远程分支名]

    2)git merge [远程库地址别名/远程分支名]

  两步骤等同于

    git pull [远程库地址别名] [远程分支名]

 

3.协同开发时的冲突解决

  两人同时修改同一位置,先提交的人成功。

  后提交的人需要先拉取,再推送。(不是基于GitHub的最新版)

  若进入冲突状态,进入“分支冲突”解决。

   

4.跨团队协作

1. )其他用户点击

  此时其他用户回到他的主页

          当前仓库所有人是其他用户,但是是从我们的团队fork来的

2.)本地bash 进行clone 修改后推送到远程

3.)其他用户

发送具体信息

4. )我们的团队

查看消息内容,可进行对话,代码审核,确定没有问题。

填写本次操作的日志信息

5.远程库的修改可拉取至本地

四、SSH免密登录

  1.进入当前用户的家目录 $ cd ~

  2.删除.ssh 目录$ rm -rvf .ssh

  3.运行命令生成.ssh 密钥目录 $ ssh-keygen -t rsa -C 用户邮箱

  4.进入.ssh 目录查看文件列表 $ cd .ssh $ ls -lF

  查看id_rsa.pub 文件内容  $ cat id_rsa.pub

  5.复制id_rsa.pub 文件内容,登录GitHub,点击用户头像→Settings→SSH and GPG Keys -> New SSH Key  输入复制的密钥信息

  6.回到Git bash 创建远程地址别名 $ git remote add origin_ssh ssh地址

  7.推送文件进行测试

 

附:解决git push错误  The requested ULR returned error:403 Forbidden while accessing

  私有项目,没有权限,输入用户名密码,或者远程地址采用这种类型

  vi .git/config

#将

[remote “origin”]

url=https://github.com/用户名/仓库名.git

修改为:

[remote “origin”]

url=https://用户名:密码@github.com/用户名/仓库名.git

五、github pages 搭建网站

 

个人站点

访问

https://用户名.github.io

搭建步骤

1.创建个人站点->新建仓库(注:仓库名必须是【用户名.github.io】)

2.在仓库下新建index.html的文件即可

注:1.github pages 仅支持静态网页

2.仓库里面仅能有.html文件

Project Pages 项目站点

https://用户名.github.io/仓库名

 

附:邀请团队成员

 

HIT2019春软件构造->Git&Github学习笔记的更多相关文章

  1. git/github学习笔记

    郑重提示,本文来自这里,如果喜欢,请关注原作者. 1. git 版本控制系统 相比CVS\SVN优势: - 支持离线开发,离线Repository- 强大的分支功能,适合多个独立开发者协作- 速度块 ...

  2. 【Git/GitHub学习笔记】基本操作——创建仓库,本地、远程同步等

    近日想分享一些文件,但是用度盘又太麻烦了(速度也很恶心).所以突发奇想去研究了下GitHub的仓库,这篇文章也就是一个最最最基础的基本操作.基本实现了可以在GitHub上存储文本信息与代码. 由于我的 ...

  3. 【Git/GitHub学习笔记】一键更新多个git仓库至远程

    因为同时在本地维护几个Github的仓库,每次更新后每个仓库要重复三步提交同步,有点麻烦. 发现可以写.sh文件来实现一键更新. 比如我要更新我的BlogBackup和CodeRepo两个仓库的代码如 ...

  4. HIT2019春软件构造->重写hashCode()方法

    不需要重写equals方法: 1.     一个类的每一个实例本质上都是唯一的. 2.     不关心一个类是否提供了“逻辑相等”的测试功能 3.     超类已经改写了equals方法,并且从超类继 ...

  5. HIT2019春软件构造->正则表达式语法

    普通字符:匹配与之相同的字符        字母.数字.汉字.下划线.没有特殊定义的标点符号. 简单的转义字符: \n 换行符 \t 制表符 \\ 代表\本身 \^,\$,\.,\(,\),\{,\} ...

  6. git的学习笔记(二):git远程操作

    1.创建ssh key ssh-keygen -t rsa -C "your_email@example.com" 执行命令后会在用户的家目录生成.ssh的隐藏文件夹,文件夹里有公 ...

  7. Git与GitHub学习笔记(七)Windows 配置Github ssh key

    前言 SSH是建立在应用层和传输层基础上的安全协议,其目的是专为远程登录会话和其他网络服务提供安全性的保障,用过SSH远程登录的人都比较熟悉,可以认为SSH是一种安全的Shell.SSH登录是需要用户 ...

  8. Git与GitHub 学习笔记

    以下信息来源于网络资料,并进行整理与精简 Git是目前世界上最先进的分布式版本控制系统,和svn,vss等一样都是进行版本控制的. GitHub是一个软件项目的托管平台,相当于自己建立的 svn服务器 ...

  9. git的学习笔记整理

    Git学习较好的网址:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001373 ...

随机推荐

  1. koa2:通过Ajax方式上传文件,使用FormData进行Ajax请求

    koa2通过表单上传的网上很多,但通过Ajax方式上传文件,使用FormData进行Ajax请求,不好找. 参考了这个用base64上传图片的例子.https://github.com/Yuki-Mi ...

  2. react组件实现扩展知识

    react-redux redux-thunk 实现异步action, ajax,定时器 redux-gen 利用生成器,实现middleware react-router-redux react-r ...

  3. 非常不错的svg教程

    介绍的非常详细,也很有调理,内容很详细 适合于初学者学习 http://www.softwhy.com/qiduan/SVG_source/

  4. C# Winform设计运行时,界面模糊

    程序在Visual Studio设计的很清晰的菜单和界面,运行的时候菜单和控件上字体变得很模糊,界面大小也发生了变化 解决方法是:更改程序的配置文件,使程序运行时自动检测屏幕分辨率,在高分屏时禁用系统 ...

  5. 如何提高单片机C语言代码效率

    代码效率包括两个方面内容:代码的大小和代码执行速度.如果代码精简和执行速度快,我们就说这个代码效率高.一般情况下,代码精简了速度也相应提上来了.单片机的ROM和RAM的空间都很有限,当您编程时遇到单片 ...

  6. linux用户键拷贝文件

    如果A用户没有权限写B用户下面的文件,可以用这个命令拷贝 scp AAA.tar.gz B用户名@IP:全路径

  7. react初始

    一.一些基础概念 1.框架:基于整个项目的 2.库:在某个模块中单独使用,轻量级的 在vue中,DOM的操作时DOM指令调用js 在react中,所有的DOM 渲染都是由JS完成的 组件基于视图 模块 ...

  8. 解决 httpclient 下 Address already in use: connect 的错误

    最近做httpclient做转发服务,发现服务器上总是有很多close_wait状态的连接,而且这些连接都不会关闭,最后导致服务器没法建立新的网络连接,从而停止响应. 后来在网上搜索了一下,发现解决的 ...

  9. win10 WSL kali 下载源 --另外 恭喜马哥喜提博客

    第一篇也不知道写什么,就把昨晚安装kali时遇见的事写一下吧! 因为win10应用商店已经加入了kali,也省的我再去网上下载镜像,可下载后  wsl  未能设置为开发人员模式, 这算是失误吧!步骤如 ...

  10. jpeg库的搭建

    为了在arm版上显示jpg图片,现将libjpeg库移植 我的系统:Manjaro 编译工具:arm-linux-gcc 安装最新 JPEGjpegsrc.v9c.tar.gz 下载链接http:// ...