[Git] Git学习笔记

自己的使用总结,还不完善,时不时更新。
以下学习笔记的代码托平台为 GitHub,其他平台(如Gitee等)大同小异~、

1. 基本概念

  • 仓库(Repository):实际上就是项目(一个仓库有100个start已经很了不起了);

  • 复制克隆项目(Fork):把别人的仓库完完整整地复制到我的仓库里,且是独立存在的(但是这样的话是不是太浪费空间了),我们可以在里面随意添加代码、删除代码,跟原仓库都没影响;

  • 发起请求(Pull Request):就是上面我们克隆的仓库做了修改之后,只要发起请求,原仓库主人就可以看到我们的修改,如果他觉得还不错的话就会合并到原仓库(也就是同意请求);

  • 关注(Watch):如果Watch了某个项目,当项目有任何更新你都可以接收到动态;

  • 事务卡片(Issue):发现代码BUG,但是目前没有成型代码,需要讨论时用;

  • Git工作区域:暂存区其实就是草稿箱;

    先将工作区的文件提交到暂存区(存草稿),等确定提交之后就提交到Git仓库;

    • git status 命令可以查看文件的状态(是在工作区还是暂存区);

    • git add 文件名 命令可以提交到暂存区;

    • git commit -m “提交描述” 命令可以将暂存区的东西提交到Git仓库;

2. 开源项目贡献流程

2.1 新建Issue:

提交使用问题、建议或者想法(也就是反馈?)

2.2 Pull Request:

  1. Fork项目;

  2. 修改自己仓库的项目代码

  3. 发起pull request

  4. 等待作者操作(审核、合并)

3. Git的配置

安装完Git之后需要初始化基本信息(只需要一次,这是全局的,对所有仓库生效,以后建新的仓库不需再配置)

config的三个作用域

  • git config --local 只对某个仓库有效
  • git config --global 对当前用户所有仓库有效
  • git config --system 对系统所有登录的用户有效
  1. 设置用户名

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

    git config --global user.email '[邮箱]'
    
  3. 查看配置信息

    git config --list [作用域]
    # 如:
    git config --list local
    

4. 仓库相关

  1. 初始化仓库

    git init
    
  2. 查看关联的远程仓库

    git remote -v
    
  3. 关联远程仓库

    git remote add origin [仓库地址]
    
  4. 修改远程仓库地址

    git remote set-url origin [新仓库地址]
    
  5. 推送仓库

    【注】首次推送需要关联指定分支!

    # 首次推送需要关联指定分支,例如当前分支关联远程仓库的 develop 分支,执行“git push --set-upstream origin develop”
    #(关联远程分支之后可直接使用,不需指定远程分支)
    git push
    # 或者指定分支
    git push -u origin [分支名]
    

5. 常规操作

  1. 添加文件到暂存区

    git add [文件名]
    # 如:添加所有文件
    git add *
    
  2. 提交

    git commit -m '[提交注释]'
    
  3. 查看文件的状态(是在工作区还是暂存区):

    git status
    
  4. 移除已经add的文件:

    # 方法一:不会删除物理文件
    git rm --cached [文件路径]
    # 方法二:将该文件从缓存中删除的同时也删除物理文件
    git rm --f [文件路径]
    

6. 分支操作

【注】仓库被初始化之后并没有分支,(好像也不能手动创建?)提交一次之后Git会自动创建一个master分支,并将本次操作提交到master分支。

  1. 查看现有分支

    # 查看本地分支
    git branch -v
    # 查看所有分支(包括远程)
    git branch -a
    
  2. 创建新的分支

    git branch [新分支名]
    # 或 新建一个分支并切换到该分支
    git checkout -b [新分支名]
    
  3. 切换分支

    git checkout [分支名]
    # 或切换分支
    
  4. 合并分支

    假设要将dev分支的内容合并到master分支中:

    • 切换到master分支;

    • 执行:

      git merge dev
      

      【注】如有冲突会合并失败

  5. 本地分支关联远程分支

    【注】当前分支首次推送到远程分支需要进行关联

    git branch --set-upstream-to=origin/[远程分支名]  [本地分支名]
    # 或者:当前所在分支第一次推送可直接同时关联远程分支
    git push --set-upstream origin [远程分支]
    
  6. 查看本地分支关联的远程分支

    git branch -vv
    
  7. 重命名分支

    git branch -m [旧分支名] [新分支名]
    

    执行之后推送到远程的指定分支(旧分支名);

7. 冲突解决

7.1 下面是很久以前的总结,不确定对不对。后面继续补充其他类型

在多人开发的时候,经常遇到的问题就是对于远程仓库上的某个版本,所有人都pull了,当某个人修改提交之后并push,那么其他的人再push就会被拒绝,这就是文件冲突(不过好像只是其中的一种);

以下是解决方式(其实我觉得效率一点都不高):

  1. 当push被拒绝之后,我们应该先pullpull之前肯定已经commit了);
  2. pull时Git会就会自动合并;
  3. 合并之后根据Git打印的信息对每个合并后的文件进行修改;
  4. 之后addcommitpush

Rebase

8. 回滚

  1. 查看版本,确定需要回到的时刻:(第一条指令显示具体信息,第二条指令只显示一行,比较简洁)

    git log
    #或者代码托管商的?
    git log --pretty=oneline
    
  2. 回滚操作

    git reset --hard 版本号
    
  3. 退回最新版本:回滚之后后悔了(但是窗口关了,git log已经找不到以前的记录了),想回到之前的最新版本,使用

    git reflog
    

    查看历史操作,得到最新的 **commit id **,然后再用 2 中的退回操作进行退回就可以了

9. 搭建个人站点

可以配合vue之类的框架。一般用于搭建个人博客或者项目主页

  1. 访问https://用户名.github.io

  2. 在git网站新建仓库(注:仓库名必须是【用户名.github.io】)

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

  4. 或二者在项目仓库的setting往下拉看到GitHub Pages,然后自己弄就行,不过这个是仓库的网页,更123点的自己创建的不太一样

9.1 绑定域名

9.2 步骤

posted @ 2023-05-27 12:44  小贼的自由  阅读(14)  评论(0编辑  收藏  举报