Git基本命令

165 阅读7分钟

前言

该文章记录一些GIT的一些基本命令,后续将会逐步增加,所有内容均从网上整理而来,加上自己得理解做一个整合,方便工作中使用。

一、生成SSH密钥-进行链接

1.生成密钥

//打开Git Bash,输入命令:
ssh-keygen -t ed25519 -C "邮箱"

//如果系统不支持Ed25519算法,使用:
ssh-keygen -t rsa -b 4096 -C "邮箱"

//根据步骤输入保存路径、自定义密码、确认密码,可以直接回车

image.png

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

//如果推送没有权限,检查管理员是否添加账号为开发者权限,以及项目是否有分支保护