git分析理解

  • git分为三部分:本地仓库、暂存区、远程仓库(git各网站)
  • 本地仓库需要与远程仓库创建连接,或直接clone
  • git commit 会将修改内容先提交到暂存区,git push后才会上传到远程仓库

1.创建git远程仓库

  • 在github或gitlab等一些平台上,新建仓库

2.创建git本地仓库

新建文件夹并打开git bash

//初始git仓库
git init 

3.与git远程仓库关联连接

  • 方式一:(可不用初始化git仓库,因为远程拉取就有)
git clone git@github.com:username/repositoryname.git (shh仓库地址,需要添加密钥)
git clone https://github.com/dreamChaser-lcc/xnsj.git (https仓库地址不需要密钥)

username为git登录账户名,repositoryname为仓库名,仓库地址也可从git上复制

  • 方式二:
git remote add origin xxx //xxx为远程仓库地址如上

git remote -v  //查看是否添加成功

git fetch origin  //向远程仓库拉取内容

git branch -a //查看远程分支

//操作一:切换分支
git checkout xxx //xxx分支名
//提交文件
git add . //将所有文件放入暂存区
git commit -m xxx //xxx描述信息 添加描述并提交
git push

//操作二:创建分支并切换
git checkout -b xxx //xxx新分支
git add xxx //xxx文件名
git commit  -m xxx //xxx描述

//当第一次上传时,git push 如下
git push --set-upstream origin xxx //xxx为新分支的名,由于新分支没有历史流,远程没有记录,所以需要--set-upstream
或
git push -u origin xxx 

第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令

  • 建立连接后
mkdir test  //创建文件夹或文件
git add .  //将目录下所有文件放入暂存区
或 git add test //单个文件放入暂存区
git commit -m xxx //提交 xxx为描述信息
git push

4.添加SSH密钥

添加后才能使用ssh远程仓库地址与本地创建连接,否则只能使用https地址创建连接

  • 设置git用户名,邮箱,密码(全局配置)
git config --global user.name xxx  //xxx为用户名
git config --global user.eamil xxx  //xxx为邮箱
git config --global user.password  //xxx为密码
git config --list //查看所有配置
git config user.name //查看用户名
  • 生成密钥命令
 ssh-keygen -t rsa -C  xxx  //xxx为git邮箱或用户名
  • 查看生成的密钥
    密钥文件默认路径:c盘->用户->自己的用户名->.ssh (C:\Users\电脑用户名\.ssh)
    目录下的文件如下:
    id_rsa为密钥,id_rsa.pub为公钥
    id_rsa为私密钥,id_rsa.pub为公钥
    将公密钥内容全部复制到网站git->settings->SSH and GPG keys
    在这里插入图片描述
    将公钥复制到key
    Title 随意输入 然后添加既可。

5.github中https连接换成ssh连接方式

为什么要换?

  • github 更新后,https方式每次提交都需要获取token重新登录
  • 替换后可以不需要每次去github获取token
// 查看已连接的远程连接
$ git remote -v
// 替换 xxx 为ssh方式的连接 
$ git remote set-url origin xxx

6.其他命令

  • 拉取
// --allow-unrelated-histories会将分支合并
git pull origin master --allow-unrelated-histories
  • 批量删除本地分支
git branch | grep "模糊关键词"|xargs git branch -D
  • 暂存代码
git stash save "xxx" //xxx暂存的名称
git stash pop // 从暂存栈顶移除
// or
git stash apply "xxx" // 应用暂存代码,但不删除
// 查看栈
git stash list
命令备注
git status查看工作目录状态
git branch -v查看所有本地分支
git branch -a查看所有远程分支
git branch -m xxx xxx修改分支名称,第一个xxx为旧名称,第二为新
git push origin --delete xxx删除远程分支xxx
git branch -d xxx删除本地分支xxx
git checkout xxx切换分支,xxx为分支名
git merge xxx合并分支,xxx为分支名
git remote -v查看已连接仓库
git pull从远程分支拉取代码
git push上传代码
git fetch origin从远程拉取信息
git branch -u origin/master master从远程拉取master分支
git rm -f xxx强制删除xxx文件,暂存区工作区都会被删除
git rm --cache xxx只从暂存区删除,文件还存在工作目录

7.合并分支

转载: 合并分支的具体方法.

8.上传大于100MB文件

  • 1.下载并安装Git LFS程序 下载地址.
  • 2.git安装lfs (会在.git同级目录生成 .gitattributes配置文件)
git lfs install
  • 3.配置(所有zip文件通过lfs上传,可按需配置)
git lfs track "*.zip"
  • 4.上传配置文件(需要先将lfs配置文件上传到远程仓库才能上传大文件)
git add  .gitattributes
git commit - m description
git push 
  • 5.上传大文件
    git add xxx //xxx为大文件,并且是.zip格式(因上面配置的是zip)
    git commit -m description
    git push

9.git 版本回退代码

  • 为了不覆盖原始代码,一般创建新分支回退
git checkout -b xxx  //同步当前分支所有内容到xxx分支

下面所有的操作都是在xxx分支进行

  • 查看需要回退的版本
 git log  //commit log

在这里插入图片描述

  • 根据head 回退版本
  git reset head   //如上图
  • 强力上传到远程仓库(上传后回退之间的记录都会清除)
  git push orgin xxx -f  或者 
  git push orgin xxx --force    
  • 成功上传修改后,合并修改内容到原分支(可忽略)
git checkout preBranch
git merge xxx  //xxx为新建分支
(修改合并冲突)
git push

10. 添加tag 给代码加上版本号

创建轻量级标签

git tag xxx  // xxx为tag名称
// or
git tag xxx commitId // xxxtag名称,commitId提交记录Id

创建带附加描述的标签

git tag -a xxx -m "描述信息"
or 
git tag -a xxx commitId -m "描述信息"

查看本地标签

git tag  // 列出标签名称
or 
git tag -l "v1.*" // 查询v1.*版本的tag标签
or
git show "tag名称"

推送到仓库

git push origin xxx // 推送单个xxx标签
or 
git push origin --tags // 推送本地所有可推送标签 
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐