后端基础day16 Git使用 | 青训营笔记

23 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 16 天

概述

历史

Linux之父Linus在开发linux内核的时候, 最开始是手动合并代码, 然后是租用了商业版本控制系统BitKeeper, 后来闹矛盾, 于是Linus用C语言两周便开发了Git

Git:分布式版本管理系统

GitHub:为用户提供Git服务的代码托管平台

  • 本地版本控制
  • 集中式版本控制
  • 分布式管理系统

操作区

  • 三个操作区域:
  1. Working Directory(工作区): 平时存放项目代码的地方
  2. Stage/Index(暂存区): 临时存放你的改动,事实上它只是.git下的文件
  3. Repository(资源库): 安全存放数据的位置, 这里面有你提交到所有版本的数据
  4. Remote(远程仓库):托管代码的服务器

基本命令

添加git用户名和邮箱 一次即可

git --global user.name "name"
git --global user.email "email"
  • 将本文件夹初始化, 建立Repository(.git文件)
git init
  • 提交一个版本到暂存区Index, 并提交到资源库Repository
git status  # 查看当前状态
git add FILE1 FILE2  # 添加文件到暂存区
git commit -m "这里是commit的注释"  # commit之后暂存区的所有文件都清空, 需要重新add
  • 查看本地修改记录
git status  # 此时git会告诉你哪些文件修改了
git diff  # 比较文件不同的地方
  • 版本回退
git log --oneline  # 得到commit记录, 同时显示commit id, 以及HEAD指针的位置
git reset --hard 2we78efj  
git reset --hard HEAD^^  # 回退到上两个版本
# 回退后也可以前进
git reflog  # 查看git命令历史, 得到想要版本的commit id. 再reset即可
  • 撤销本地修改: 回退本地版本到最近一次add或者commit
git resotre FILENAME
# git checkout -- FILENAME    #老版本
  • 撤销暂存区的add记录, 但本地修改依然存在, 可撤回部分文件(unstage).
git restore --stage FILENAME
  • 在本地删除文件后, 同步git暂存区
git rm FILENAME
# 或者: 
git add FILENAME
  • 查看已经commit到资源库Repository中的文件
git ls-files

远程

初始化 (ssh密钥为例)

ssh-keygen -t rsa -C "youremail@example.com"
  • 关联一个远程仓库/解除关联
git remote add origin git@server-name:path/repo-name.git
git remote rm origin
  • 远程代码克隆到本地
git clone URL

远程分支

  • 首次推送分支到Remote (创建远程分支)
git push -u origin main
# 第一次推送完成后, 本地分支会关联main分支, 所以简化为: 
git push origin main

当远程库是空的,我们第一次推送main分支时,加上了-u参数,Git不但会把本地的main分支内容推送的远程新的main分支, 若远程分支不存在则会创建远程分支, 还会把本地的 main 分支和远程的 main 分支关联起来,在以后的推送或者拉取时就可以简化命令.

  • 删除远程分支
 git push origin --delete BRNAME