Git常用命令

Git常用命令

在这里插入图片描述

查看

  1. git branch /-r/-vv/-a
    查看本地所有分支/只查看远程仓库的分支/查看本地分支和相关联的远程分支/查看本地和远程仓库的所有分支
  2. git remote -v
    查看远程仓库的信息
  3. git log
    显示当前分支的版本历史
  4. git status
    显示有变更的文件
  5. git diff
    显示暂存区和工作区的差异
  6. git diff HEAD
    显示工作区与当前分支最新commit之间的差异
  7. git reflog
    显示当前分支的最近几次提交
  8. 查看用户名和密码
    git config user.name
    git config user.email
  9. 设置用户名
    git config --global user.name “mytheart”
  10. 设置邮箱
    git config --global user.email useremail@qq.com
  11. 只查看commitid 和对应的描述
    git log --pretty=oneline --abbrev-commit

分支操作

  1. git branch --set-upstream-to=origin/[branch-name]
    将当前本地分支和远程分支相关联(本地分支和远程分支都已经存在)
  2. git push --set-upstream origin branch_name
    在远程创建一个与本地branch_name同名的分支并跟踪
  3. git checkout --track origin/branch_name
    在本地创建一个与branch_name同名分支并跟踪远程分支
  4. git branch -D [branch-name]
    删除本地分支(删除前不能处于要删除的分支)
  5. git push origin --delete [branch-name]
    删除远程分支(将一条空分支推送到远程 git push <远程主机名> <本地分支名> <远程分支名> )
  6. git branch [branch-name]
    新建一个分支,但依然停留在当前分支
  7. git branch [branch] [commit]
    新建一个分支,指向指定commit
  8. git checkout -b [branch]
    新建一个分支,并切换到该分支
  9. git checkout -
    切换到上一个分支
  10. git merge [branch]
    合并指定分支到当前分支
  11. git cherry-pick [commit]
    选择一个commit,合并进当前分支
  12. 下载远程仓库的所有变动
    git fetch [remote]

提交操作

  1. git commit --no-verify -m
    提交并忽略校验
  2. git stash
    现在想要切换分支,但是还不想要提交之前的工作;所以储藏修改。将新的储藏推送到栈上
  3. git stash list
    查看栈中储藏的内容
  4. git stash pop
    还原并删除该条stash记录

撤销/回滚操作

  1. git checkout .
    重置所有工作区的文件
  2. git reset .
    回退暂存区的文件(相当于回退到git add . 之前的状态)
  3. git reset --soft HEAD^
    撤销上次的本地提交(相当于回退到git commit 之前的状态,提交的文件回到暂存区)
  4. git reset --hard HEAD^/HEAD~1/commitId
    重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致/回退到底前1个版本/指定版本

仓库操作

  1. git remote -v
    // 查看git对应的远程仓库地址
  2. git remote rm origin
    // 删除关联对应的远程仓库地址
  3. git remote add origin https://github.com/xxx.git
    // 重新关联git远程仓库地址
  4. git remote get-url origin //查看远程仓库地址
  5. git remote set-url origin https://github.com/xxx.git
    // 设置远程仓库的地址

标签

  1. git tag v1.0
    // 打在最新提交的commit上的
  2. git tag v0.9 f52c633
    // 打在某个commit上

Git提交规范

  • feat:新功能(feature)
  • fix:修补 bug
  • docs:文档(documentation)
  • style: 格式(不影响代码运行的变动)
  • refactor:重构(即不是新增功能,也不是修改bug的代码变动)
  • test:增加测试
  • chore:构建过程或辅助工具的变动

常见操作(回滚+取消回滚)

  1. git reflog / git log -g 可以查看所有的操作日志
  2. git reset --hard commitId 重置本地仓库的commit到某次commitId
  3. git push -f 强制推送到远程分支(本地分支回滚后,版本将落后远程分支,必须使用强制推送覆盖远程分支,否则无法推送到远程分支)
  4. 进阶-公共远程分支版本回退的问题

PS:

  1. 采用git clone的项目包含.git目录,这里面有历史版本信息
  2. 采用下载zip文件的是没有版本历史信息的。只是当前分支的最新版本
  3. git pull <远程主机名> <远程分支名>:<本地分支名> ,git pull = git fetch + gei merge 。git pull 会拉取仓库当前分支的内容并合并到工作区,同时对于会把远程仓库中的全部变动拉到当前的本地远程仓库。

实际开发过程中遇到过的问题

  1. git报错:fatal: refusing to merge unrelated histories

背景:在本地初始化了一个Git代码仓库,关联到Github上新建的仓库,第一次执行git pull origin master 拉取远程分支时,出现标题上的问题(Git 2.9之后的版本才会出现此问题)

git pull origin master --allow-unrelated-histories

  • 该选项可以合并两个独立启动仓库的历史
  1. 远程仓库回退
    1. 本地仓库回退
    git reflog // 找到要回退的版本的commit id; 显示你之前所有生成过commit的操作(git stash也在里面),不管出了什么错,理论上都是可以抢救的
    git reset --hard Obfafd // 回退版本
    2. 强制推送到远程分支:
    git push -f
    ps:另一个方法:先将本地分支退回到某个commit,删除远程分支,再重新push本地分支

参考文献

Github地址

https://github.com/mytheart/Web

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值