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

    注意描述后不能带文件名

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容