Git 学习

Git学习

管理本地仓库

此学习将会使用git软件进行编辑,即git-bash.exe文件,这里主要使用命令行进行编辑,主要是为了方便以后在linux系统中使用命令行进行操作

前提

  • 安装git
  • 拥有GitHub账号

本地git的初始化

  1. 设置用户名

    git config --global user.name'用户名'
    
  2. 设置用户名邮箱

    git config --global user.email "你的邮箱"
    
  3. 查看设置

    git config --list
    

    可以查看当前文件夹的设置,包括用户名和邮箱,以及后面的仓库信息

  4. 在当前文件下创建新文件夹(实例为test文件夹)

    mkdir test
    

    当然也可以在文件系统中右击创建

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

    cd test
    

    进入当前目录下的刚新创建的test文件夹

    git init
    

    初始化,即在当前文件夹下创建一个.git的隐藏文件夹

    此时,刚建的test(示例)就成为了一个git repository(仓库)

尝试使用git本地仓库

  • 创建文件

    touch a1.java
    
  • 查看当前文件夹状态(查看当前是否有文件需要commit)

    git status
    

向本地仓库中添加文件的流程

git仓库分级.png

git status

查看文件情况

git add xxx.java

从工作区上传到暂存区

git commit -m "描述" (文件)

从暂存区上传到git仓库,在-m后添加相关的文字描述

详解

  1. 当文件夹中出现新文件时,使用git status会出现红色的未提交的文件(即新文件)
  2. 然后使用 git add 新文件 后,再使用git status会出现绿色的提示: new file: 新文件,此时文件到达暂存区
  3. 再使用 git commit -m '提示信息' ,回车后会把文件上传到git仓库

修改本地仓库文件

vi 文件名

编辑修改该文件

cat 文件名

查看该文件

git diff [文件名]

比较该文件的工作区和暂存区

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

git diff HEAD 文件名

比较工作区和本地仓库

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

比较工作区和本地库某个版本

详解

  1. 使用 v1 文件名 修改文件后,使用 git status 查看仓库状态时会出现红色的 modified: 文件名
  2. 然后使用 git add 文件名 后,再使用 git status 查看仓库状态时会出现绿色的 modified: 文件名(添加到暂存区
  3. 再使用 git commit -m '提示信息' ,回车后会把文件上传到git仓库

删除本地仓库文件

rm 文件名

删除该文件,是正常写法

rm是remove的意思,也有 rm -rf 文件名 的写法,

后面的参数r是recursive递归循环,f是force强制不确认

rm -i 文件名 为删除前出提示, rm -l 文件名 是删除三个以上时才出提示

git rm 文件名

从暂存区中删除文件

  1. 使用 rm -rf 文件名 删除文件后,使用 git rm 文件名暂存区删除文件
  2. 再使用 git commit -m '提示信息' ,回车后git仓库也会删除文件

管理Git远程仓库

使用远程仓库的目的

作用:备份,实现代码共享和集中化管理

[图片上传失败...(image-79661-1559201388014)]

Git 克隆操作

目的

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

  • 完整的把远程库下载到本地
  • 创建 origin 远程地址别名(可以使用别人起的别名)
  • 初始化本地仓库

代码

git clone 仓库地址

仓库地址

克隆地址.png

注意要到已经初始化的文件夹下克隆

同时可以让本地仓库记住仓库地址

git remote add 别名 仓库地址

起好别名后,可以通过

git remote -v

查看别名和对应的仓库地址

修改后提交到远程仓库

git push (别名 节点)

  1. 修改或添加文件
  2. git add 文件名 提交到暂存区
  3. git commit -m '描述' 提交到本地仓库
  4. git push 提交到远程仓库

邀请别人加入团队

到仓库的setting-Collaborators中输入成员的名字

抓取远程仓库的修改

pull = fetch + merge

git fetch 别名 分支
git merge 别名/分支

所以可以使用另外的方法pull

git pull 别名 分支

出现冲突

  1. 如果不是基于GitHub远程库的最新版所做的修改,不能推送,必须先拉取
  2. 拉取下来后如果进入冲突状态,则按照“分支冲突管理”操作解决即可

Github Pages 搭建个人网站

访问

https://用户名.github.io

搭建个人站点

  1. 创建个人站点

    新建仓库(仓库名必须是 用户名.github.io

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

    作为首页

    这样访问 https://用户名.github.io 就能访问 index.html 了

注意github仅支持静态网页,且仓库里只能是.html文件

搭建项目站点(Project Pages)

  1. 进入项目主页,进入 settings

  2. 在 settings 页面,点击 Launch automatic page generator (位于下方)

    会进入主题页面,同时可以编辑

  3. 生成网页

其他git指令

查看信息

git log

commit ######### (HEAD -> master)

####代表该版本的索引,可以根据索引值进行版本操作

HEAD代表当前版本,指向master分支

(按空格可以翻页 b向上翻页 q退出)

git log --pretty=oneline

以一行一条信息的方式显示

git log --oneline

更简洁的显示(只显示当前版本后面的版本)

git reflog

能提示版本回溯需要的步数(能显示所有历史记录)

更改版本

基于索引值操作(推荐)

git reset --hard 索引值
  1. 可以先用 git log 查看版本对应的索引值(局部索引值也可以)
  2. 再用 git reset --hard 索引值 把版本定在该索引值的版本下

使用^符号(只能往后)

git reset --hard HEAD^

退到后面一个版本

一个代表后退一个,几个代表后退几个版本

使用~符号

git reset --hard HEAD~数字

数字是多少代表后退多少步

reset参数

  • --soft

    git reset --soft 仅移动本地仓库的指针

  • --mixed

    git reset --mixed 仅移动本地仓库和暂存区的指针

  • --hard

    git reset --hard 能移动本地仓库、暂存区和工作区的指针

帮助命令

git help 想查询的命令

Git的分支

在版本控制中,使用多条线同时推进对个任务(多个功能的开发)。

各个分支在开发的过程中,如果某一个分支开发失败,不会对其他分支有任何影响,失败的分支删除重新开发即可

不同分支间的关系.png

分支的相关操作

查看所有分支

git branch -v

创建该分支

git branch 分支名

切换分支

git checkout 分支名

合并分支(被合并)

  1. 切换到接受修改的分支上,用 git checkout 分支1 切换

  2. 执行 merge 命令

     git merge 分支2
    

    分支2就合并到分支1中

解决冲突

合并时可能出现两个分支行不一致,导致合并失败,此时需要手动合并

  1. 打开冲突文件( vim 文件名

    可能会出现下面的冲突(案例)

    合并出现冲突.png
  1. 删去冲突符号,修改文件(或者留下适合的那一行)

  2. 执行 git add 文件名git commit -m "描述" 合并到本地仓库中

    注意描述后不能带文件名

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,319评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,801评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,567评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,156评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,019评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,090评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,500评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,192评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,474评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,566评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,338评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,212评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,572评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,890评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,169评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,478评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,661评论 2 335