前言
该文章记录一些GIT的一些基本命令,后续将会逐步增加,所有内容均从网上整理而来,加上自己得理解做一个整合,方便工作中使用。
一、生成SSH密钥-进行链接
1.生成密钥
//打开Git Bash,输入命令:
ssh-keygen -t ed25519 -C "邮箱"
//如果系统不支持Ed25519算法,使用:
ssh-keygen -t rsa -b 4096 -C "邮箱"
//根据步骤输入保存路径、自定义密码、确认密码,可以直接回车
2.添加密钥
一般在个人中心-settings-SSH and GPG keys中设置,打开公钥文件,复制内容,添加即可。
3.检查密钥链接
//输入命令:ssh -T xxx
ssh -T git@git.ahzxgp.cn
//成功会有类似:Hi <username>! You've successfully authenticated
二、 基础命令
- 初始化仓库
初始仓库 git init
设置签名 git config --global user.name 用户名
设置邮箱 git config --global user.email 邮箱
只是设置本地的,在c盘用户中.gitconfig文件中可以可看到设置
- 基本命令
git status ----查看本地仓库里文件状态,是否被修改,修改文件名爆红
git add . -----提交全部修改过的文件到本地仓库缓存区
git commit -m “提交信息” ----把缓存区的文件提交到本地仓库
git branch -v ----查看所有分支
git branch 分支名 ----创建一个分支
git branch -d 分支名 ----删除分支(需要切换到另一个分支来删除该分支)git merge 分支名 ----合并分支(将分支名 这条分支合并到当前分支)
git checkout 分支名 ----切换分支
git reflog ----使用git 命令进行操作的日志 包括当前步骤所在哪个版本(一个commit 产生一个版本, 指定版本回退只能回退到该commit) 以及操作的具体内容版本回退后,仍然可以看到所有的版本记录 方便查看每个操作步骤所在的版本,可以根据版本号自由前进后退
git log ----commit 的版本日志 包含提交的版本 操作者 日期 (方便查看commit的版本,但是版本回退后,使用git log 看不到回退版本号之后的版本记录)
git reset --hard 版本号 ----切换版本号
git reset --hard origin/master 将远程仓库的内容强制替换本地内容,本地修改内容不存在
git remote -v ----查看远程仓库别名
git remote add 名字 远程仓库地址 ----创建远程创库别名
git clone 仓库地址 ----克隆仓库
git clone -b 分支 仓库地址 —克隆仓库得分支
先克隆仓库
git pull origin 分支名 ----拉取远程仓库
先拉再提交
git push origin 分支名 ----推送到远程仓库(org是默认别名,也可以换成地址)
三、 实例使用
- 需要从远程仓库拉代码,修改,再上传
//1.复制git上仓库地址
git clone 仓库地址 ----克隆仓库(默认分支)
git clone -b 分支名 仓库地址 —克隆仓库的具体某分支
//2.修改代码,本地仓库保存
git status 查看本地仓库当前分支的修改状态
git add . 提交修改过的文件到本地仓库缓存区
git commit -m “本次修改信息备注” 把缓存区的文件提交到本地仓库
//3.准备上传git ,上传前再一次拉去远程仓库最新代码
git pull origin 分支名 拉取该分支最新内容
git push origin 分支名 推送到远程仓库
- 本地创建一个分支,然后上传到远程分支
//1.当前分支下,创建一个本地分支
git checkout -b 新分支名
//注意:如果当前分支没有commit,无论是再创建一个新分支,还是切换到其他分支,其修改的内容都会被保存在当前处于的分支上,
//如果在当前分支commit了,那么修改的内容会被存在commit的分支上,而其他的分支都将恢复成其未修改的状态
//2.对新分支进行一系列操作,之后需要将该分支上传到远程分支上,成为一个新的远程分支
git push --set-upstream origin 该分支名
//3.需要删除该远程分支
git push origin --delete 分支名 删除远程分支
git branch -d 分支名 删除本地分支 (不能在该分支删除该分支)
//4.查看分支
git branch -v 查看本地所有分支
git branch -a 查看远程所有分支
- 本地/远程仓库都只有一个主分支,需求本地创建一个测试分支,增加一个新功能,本地测试之后,再在远程仓库创建一个测试分支,在测试环境测试,没有问题之后,本地分支进行合并,远程分支也合并,并删除所有测试分支
//1.创建分支
git checkout -b 新分支名
//2.修改分支内容,保存,本地测试完成,准备上传远程仓库
git status
git add .
git commit -m “修改备注”
//3.推送到远程仓库,测试环境完成,准备合并
git push --set-upstream origin 该分支名
//4.合并本地仓库的分支
git checkout master 切换回主分支
git merge 测试分支名称 - - - 将测试分支融入主分支
git pull origin master
git push origin mster 将最新的上传至远程仓库
//5.删除本地分支、远程分支
git branch -d [branch_name]
git push origin --delete [branch_name]
- 撤回与回退到历史版本
//1.使用了git add ,需要撤回
git reset HEAD - - - 撤回全部(绿字变红字,文件还是被修改)
git reset HEAD 想要撤回的文件名 (撤回指定文件,绿字变红字,文件还是被修改)
git reset --hard HEAD 撤回到最近一次commit,之后所有修改全部清空,慎用
//2.使用git commit ,需要撤回
//查看提交的历史记录
git log 【查看的是commit 的版本日志】
git log -n --oneline【可以使用 -n 参数来设置展示 commit 条数,‘–oneline’ 简化日志信息 】
使用了git log /git reflog 都会进入vi语法环境中,:q 表示退出,:wq 表示保存并退出
//退回指定版本
git reset --hard 提交的版本号
//注意:【回到指定的版本,git log 则无法再获取到被退的版本信息,
//比如从第五次提交回到第一次提交,则从第五次到第二次的版本信息git log 则无法获取】
//退回版本错误,想要撤回
git reflog 【查看所有操作记录,找到想要恢复的版本号】
git reset --hard 版本号
//本地仓库确认完成,上传远程仓库之后,远程仓库退回版本
先将本地版本退回到指定的版本
git reflog
git reset --hard 版本号
紧接着强制推送到远程分支:
git push origin [branch_name] -f
方法二
git log 【找到本地想要撤回的版本】
git revert 版本号 【撤销本次提交】
解决冲突,git push 到远程分支
- 合并远程分支
//1.仓库远程分支需要合并,本地没有仓库
git clone 地址
//2.此时获得master分支,如何在获取远程分支,并在本地建立分支,然后本地合并两个分支
git fetch origin 分支名
git checkout -b 分支名 origin/分支名
git checkout master
git merge 分支名
- 在项目文件中连接远程仓库并上传
//1.在本地项目目录下
git init
git add --all
git commit -m "xxx"
git remote add origin 仓库地址
git push --set-upstream origin master
- 本地仓库只有一个master分支,想要在拉取远程仓库中的dev分支
1.确认你已经连接到了正确的远程仓库,确保有读写权限
git remote -v
2.创建一个本地分支 `dev` 并将远程的 `dev` 分支拉取到本地
git checkout -b dev origin/dev
3.切换到 `dev` 分支
git checkout dev
四、 线上仓库迁移后,本地仓库调整
//使用命令来更新本地仓库的远程仓库地址
git remote set-url origin 新的仓库地址
//完成添加SSH密钥等操作
//查看本地仓库连接的远程仓库地址
git remote -v
//如果推送没有权限,检查管理员是否添加账号为开发者权限,以及项目是否有分支保护