携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第10天,点击查看活动详情
最近 git 操作,整乱套了,直接仓库删了,重新clone,没惯着,学习一下,下次争取整好
基本操作
配置个人信息 邮箱和名称,执行一次以后就不用执行了
git config --global user.email 'you@example.com'
git config --global user.name 'Your Name'
初始化git仓库
git init
创建文件index.html后,将修改添加到暂存区
git add index.html
或者 添加所有更改到暂存区
git add .
提交到本地版本库 执行
git commit -m '备注信息xxxx'
查看操作
任何时候都可查看当前工作状态
git status
查看提交日志
git log
图像化显示
git log --graph
只显示hash 和 提交记录 %h hash
git log --graph --pretty=format:"%h %s"
回滚
暂存区的修改回退到工作区
git restore --staged .
git reset HEAD
清除当前工作区的修改
git restore .
// or
git checkout -- .
回退到指定版本并保留所有变更到工作区
git log //获取版本号
git reset --soft 版本号
回退到指定版本并删除所有变更
git log
git reset --hard 版本号
所有版本号,回滚到已经被回滚的版本
git reflog
git reset --hard 版本号
分支
git branch
创建分支
git branch 分支名
切换分支
git checkout 分支名
创建并切换分支
git checkout -b 分支名
查看分支
git branch -a
删除分支
git branch -d 分支名
合并分支
1 切换到主分支或者说最终要用的分支
git checkout 分支名
2 合并分支到当前分支
git merge 分支名
3 如果有冲突,手动解决冲突
git add .
git commit -m 'xx'
上传到github
注册账号,创建仓库 本地没有git仓库情况下
echo "# aa" >> README.md
git init
git add README.md
git commit -m "first commit"
// 重命名
git branch -M main
// 添加远程仓库并起别名为origin
git remote add origin git@github.com:你的/aa.git
git push -u origin main
在git中,“push -u”的意思是将本地的分支版本上传到远程合并,并且记录push到远程分支的默认值;当添加“-u”参数时,表示下次继续push的这个远端分支的时候推送命令就可以简写成“git push”。 本地有仓库情况下
git remote add origin git@github.com:你的/aa.git
git branch -M main
git push -u origin main
clone代码
在新电脑中clone代码
git clone git@github.com:你的/aa.git
git checkout 开发分支
改了点东西,提交了
拉最新代码
换到老电脑,提交之前或者开发之前,获取最新的代码
git pull origin 分支名
// 这是下面两句合并的写法
git fetch origin 分支名 // 拉取远程分支到本地 自动命名为 origin/分支名
git merge origin/分支名 // 合并拉取到的分支到当前分支
变基
基操,单个分支的变基,合并当前分支的提交记录
git rebase -i HEAS~2 //N是一个数字,最近的几次提交
把要被合并的前面改成s ,:wq 保存并退出
删除想要删除的描述,或者都删除掉,重新写一个描述,:wq保存退出
多个分支间的变基
rebase 远程分支
git fetch origin 分支名
git rebase origin/分支名
我平时这么写
git --rebase origin 分支名
合并有冲突时要处理冲突
git add .
git commit -m 'xx'
git rebase --continue // 继续rebase
tag
打个标签
git tag -a v1 -m '第一个'
git push origin --tags