目录
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为公钥
将公密钥内容全部复制到网站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 // 推送本地所有可推送标签