前端学习篇 -- git 常用命令

1、常用命令

1.1 用户名和邮箱

修改全局用户名和邮箱

git config --global user.name "用户名"
git config --global user.email "邮箱"

查看用户名和邮箱

git config user.name
git config user.email

1.2 提交

# 添加所有文件到暂存区
git add .  

# 提交到本地仓库
git commit -m '修改了首页'  

# 拉取远程默认仓库到本地仓库,进行合并
git pull origin master 

# 提交本地仓库代码到服务器
git push origin master 

1.3 查看

查看状态

git status 

查看变更内容

git diff

1.4 关联

1.4.1 与远程仓库关联

git remote set-url --add origin 远程仓库地址

1.5 分支

1.5.1 显示分支

# 显示本地所有分支
git branch

# 显示远程所有分支
git branch -r

# 显示本地和远程所有分支
git branch -a

# 更新远程主机 origin 整理分支
git remote update origin --prune

1.5.2 新建分支

继承当前分支进度

# 新建分支,但还停留在当前分支
git branch [brabch-name]

# 新建分支,并切换到该分支
git checkout -b [brabch-name]

# 新建分支,并与远程仓库分支建立关联
git checkout -b [brabch-name] origin/[brabch-name]

1.5.3 删除分支

# 删除指定分支
git branch -d [brabch-name]

# 删除远程分支
git push origin --delete [brabch-name]
git push origin :[brabch-name]

1.5.4 切换分支

# 切换到指定分支
git checkout [brabch-name]

# 切换到上一个分支
git checkout -

1.5.5 合并分支

git merge [brabch-name]

# 取消合并
git merge --abort

1.5.6 提交分支

git push --set-upstream origin [brabch-name]

# 拉取远程分支
git clone -b [brabch-name] 地址
git checkout [brabch-name] origin/[brabch-name]

1.5.7 克隆分支

# 克隆远程master分支
git clone 地址

# 克隆远程dev分支
git checkout -b dev origin/dev

1.5.8 刷新远程分支

git remote update origin --prune

1.6 回退

# 查看完整信息
git log    

# 查看简略信息
git log --oneline

# 回退到指定版本
git reset --hard commit_id  

# 回退到上一个版本
git reset --hard HEAD^      

# 查看已关掉的完整信息
git reflog 

1.7 忽略追踪文件

git rm -r --cached 文件夹
git rm -r --cached 文件

1.8 git rebase

1.8.1 合并 commit

# 1. 取出最近的3次commit
git rebase -i HEAD~3

# 2. 编辑,第一条记录使用 pick,其他使用 s(压缩)
# 3. Esc 保存, :wq 退出
# 4. 编辑最新的commit信息, Esc 保存, :wq 退出

1.8.2 合并分支

# 功能分支
git rebase dev

# 开发分支
git merge feature

1.9 git stash

# 执行存储时,添加备注,方便查找
git stash save "save message"

# 查看stash了哪些存储
git stash list

# 显示做了哪些改动,默认 show 第一个存储。如果要显示其他存贮,后面加stash@{$num},比如第二个 git stash show stash@{1}
git stash show

#  显示第一个存储的改动,如果想显示其他存存储,命令:git stash show  stash@{$num}  -p ,比如第二个:git stash show  stash@{1}  -p
git stash show -p

# 应用某个存储,但不会把存储从存储列表中删除,默认使用第一个存储,即stash@{0},如果要使用其他个,git stash apply stash@{$num} , 比如第二个:git stash apply stash@{1}
git stash apply

# 应用某个存储,将缓存堆栈中的对应stash删除,默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令:git stash pop stash@{$num} ,比如应用并删除第二个:git stash pop stash@{1}
git stash pop

# 丢弃 stash@{$num} 存储,从列表中删除这个存储
git stash drop stash@{$num}

# 删除所有缓存的stash
git stash clear

1.10 git revert

创建一次新的commit 来回退某次或某几次commit的一种方式

# 创建一个新的commit,这个commit会删除(下面)commit-id的内容,但会在log中保留这个commit-id
git revert commit-id

# 批量回退 这个是前开后闭, 只revert了...和commit-id-end, commit-id-start没有撤销
git revert commit-id-start...commit-id-end

# 加上^ 就是前闭后闭,都撤销了
git revert commit-id-start^...commit-id-end

例子:

原始log

31f6a64 (HEAD -> master) 提交 3
98d937c 提交 2
af02354 提交 1

目录下的内容为:

➜  revert_test git:(master) ls
 1.txt
 2.txt
 3.txt

现在想删除 98d937c 的提交

git revert 98d937c

再看目录下的内容为:

➜  revert_test git:(master) ls
 1.txt
 3.txt

说明确实去掉了98d937c 的提交内容(即2.txt 不在了)

再看日志:

d1ea1e9 (HEAD -> master) Revert "提交 2"
31f6a64 提交 3
98d937c 提交 2
af02354 提交 1

发现,其实是通过一次新的提交来删除98d937c 的提交内容的(这里可以看出之前的commit-id依然在)

再看批量回退日志记录

a74b9bb (HEAD -> master) 提交 6
e3bbc59 提交 5
223171c 提交 4
d1ea1e9 Revert "提交 2"
31f6a64 提交 3
98d937c 提交 2
af02354 提交 1

现在回退 提交4 和提交5

git revert 223171c^...e3bbc59

看日志

af51f68 (HEAD -> master) Revert "提交 4"
1a5d0c0 Revert "提交 5"
a74b9bb 提交 6
e3bbc59 提交 5
223171c 提交 4
d1ea1e9 Revert "提交 2"
31f6a64 提交 3
98d937c 提交 2
af02354 提交 1

产生了两次revert提交commit

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值