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 "描述" 合并到本地仓库中

    注意描述后不能带文件名

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。