git操作笔记

178 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 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 保存并退出

image.png

image.png 删除想要删除的描述,或者都删除掉,重新写一个描述,:wq保存退出

image.png

多个分支间的变基

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