GIT 常用命令

新人 git 常用命令

本文整理了 git常用的一些命令,主要参考了廖雪峰的Git教程,强烈建议有条件的小伙伴可以认真学习廖雪峰Git教程

初始化 git 仓库

git init

创建文件添加 git

git add 文件名  --添加对应的文件
git add .  --添加所有的修改文件

提交 git 文件修改

git commit -m "提交的备注信息"  --提交所有添加的文件

查看 git 当前状态

git status

查看 git 提交信息

git log  --查看所有信息
git log --pretty=oneline  --查看的信息汇总到一行

在这里插入图片描述
git log 可带参数很多,例如 --graph --pretty=oneline --abbrev-commit
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

查看尚未提交的修改

git diff

查看已经提交的修改内容

git diff [commit id]

在这里插入图片描述

查看文件更改(当前工作区和最新提交版本库的区别)

git diff HEAD -- [文件名]

在这里插入图片描述

版本回退

git reset --hard HEAD^  --回退到上一个版本
git reset --hard HEAD~100  --回退到 100 个版本前
git reset --hard [指定的 commit id]  --返回到指定的提交版本,可以是以前的,也可以是以后的

在这里插入图片描述

查看所有执行的 git 命令

git reflog

在这里插入图片描述
可以以此确定当前所在的 commit id 和以前所处的 commit id

取消暂存区的改动,重新放回工作区

git restore --staged [文件名]

丢弃工作区的改动

git restore [文件名]

在这里插入图片描述
在这里插入图片描述

全部撤销工作区的改动,也可以使用 checkout

git checkout -- [文件名]

命令中 – 很重要,没有加 – ,就变成了切换到同名的分支

将暂存区的改动文件重新放回工作区也可以使用reset

git reset HEAD [文件名]

在这里插入图片描述

恢复工作区误删除的文件

git restore <文件名>
git checkout -- <文件名>  //删错了,但是版本库里还有,可以使用 checkout

确定提交删除操作

git add/rm <文件名>
git commit -m "删除信息"

向远程仓库推送代码

git push <远程库名称> <分支名>
git push -u origin <分支名>  

第一次向远程仓库推送分支内容,加入-u 参数,不仅会推送本地分支内容,还会把本地分支和远程分支关联起来,在以后的推送中可以简化命令 git push origin <分知名> ,默认的远程库名称为 origin,也可以自定义,例如一个本地仓库同时关联 gitee 和 github:

git remote add github git@github.com:<github远程注册名>/<远程仓库名>.git
git remote add gitee git@gitee.com:<gitee远程注册名>/<远程仓库名>.git
git remote -v
gitee	git@gitee.com:<gitee远程注册名>/<远程仓库名>.git (fetch)
gitee	git@gitee.com:<gitee远程注册名>/<远程仓库名>.git (push)
github	git@github.com:<github远程注册名>/<远程仓库名>.git (fetch)
github	git@github.com:<github远程注册名>/<远程仓库名>.git (push)

git push github master  //推送 GitHub master
git push gitee master  // 推送 gitee master

在这里插入图片描述

查看远程库信息

git remote
git remote -v

删除远程库

git remote rm <名称>
git remote rm origin  //删除本地和远程 origin 的关联

这里删除的是本地库和远程库的绑定联系,并非真正删除远程库的内容,如确实需要远程删除,需要手动登录 GitHub 或者 Gitee,找到仓库,手动删除。

关联远程仓库

git remote add origin git@server-name:path/repo-name.git

关联一个远程库时必须给远程库指定一个名字,origin是默认习惯命名

从 git 远程仓库克隆

git clone <远程仓库地址>

git查看当前所有分支信息

git branch

git创建分支

git branch <分支名>

git切换分支

git checkout <分支名>
git switch <分支名>

创建+切换

git checkout -b <分支名>
git switch -c <分支名>

合并分支(合并指定分支到当前分支)

git merge <分支名>

删除分支

git branch -d <分支名>
git branch -D <分支名>  //强行删除

git终止当前合并操作

git merge --abort

合并过程中不能切换分支

合并代码时强制禁用 Fast Forward

不使用 fast forward 会产生一个新的提交,所以加参数-m 表明提交信息

git merge --no-ff -m "提交信息" <分支名>

stash暂存当前分支内容

git stash

查看stash暂存区 列表

git stash list

恢复工作区内容

git stash pop  //恢复工作区内容并删除列表
git stash apply  //恢复工作区内容,但是列表记录还在
git stash drop //删除 stash list 列表内容
git stash apply stash@{
   0}  //如果 stash 列表中不止一个暂存,stash@{
   }中可选择恢复哪一个stash

在这里插入图片描述

合并特定的提交到当前的分支

git cherry-pick <commit id>

指定本地分支与远程分支的关联(以 dev 分支为例)

git branch --set-upstream-to=origin/dev dev
git branch --set-upstream-to <branch-name> origin/<branch-name>

拉取分支

git pull

在本地创建和远程关联的分支

git checkout -b branch-name origin/branch-name

rebase把本地未push的分叉提交历史整理成直线

git rebase

rebase前在这里插入图片描述
rebase 后在这里插入图片描述

解决当前索引的冲突

当 git进行 rebase 操作后,卡在正在变基阶段,切换分支提示需要先解决当前的索引冲突 you need to resolve your current index first,解决方法

git reset --merge

在这里插入图片描述

Git中打标签

git 的标签其实对应的是某次提交的 commit id

git tag <标签名>
git tag v1.0

git默认标签打在最新 commit 的 id 上,如要指定某次 commit,可以指定 id

git tag <tag name> <commit id>
git tag v0.9 3165663

还可以有其他参数,创建带有说明的标签,用-a指定标签名,-m指定说明文字

git tag -a <tag name> -m "tag messsage" <commit id>
git tag -a v1.0 -m "version 1.0 released" 3165663

查看tag

git tag

查看 tag 具体信息

git show <tag name>
git show v1.0

在这里插入图片描述

删除标签

git tag -d <tag name>

推送某个标签到远程

git push origin <tag name>

一次推送所有没有推送的本地标签

git push origin --tags

删除远程标签

git push origin :refs/tags/<tag name>

配置别名alias

–global 表示全局变量,如果不加,那只针对当前的仓库起作用。
repo 等级的配置一般在.git/config 下,global 等级的一般在~/.gitconfig 或者 ~/.config/git/config下

git config --global alias.st status  //git st就表示git status
git config --global alias.co checkout  //co表示checkout
git config --global alias.ci commit  //ci表示commit
git config --global alias.br branch  //br表示branch
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"

在这里插入图片描述

相关推荐

  1. git命令

    2023-12-15 09:30:03       43 阅读
  2. Git命令

    2023-12-15 09:30:03       34 阅读
  3. git命令

    2023-12-15 09:30:03       40 阅读
  4. git命令

    2023-12-15 09:30:03       50 阅读
  5. Git命令

    2023-12-15 09:30:03       41 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-15 09:30:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-15 09:30:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-15 09:30:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-15 09:30:03       18 阅读

热门阅读

  1. Elasticsearch之_reindex

    2023-12-15 09:30:03       33 阅读
  2. TypeScript中的接口(interface )详解

    2023-12-15 09:30:03       32 阅读
  3. html2canvas库——前端实现基于DOM的截图

    2023-12-15 09:30:03       41 阅读
  4. xml.dom --- 文档对象模型 API

    2023-12-15 09:30:03       31 阅读
  5. OpenShift与Rancher

    2023-12-15 09:30:03       28 阅读
  6. HTML中RGB颜色表示法和RGBA颜色表示法

    2023-12-15 09:30:03       37 阅读
  7. 【Oracle】常用数据库sql记录

    2023-12-15 09:30:03       27 阅读
  8. 200. 岛屿数量

    2023-12-15 09:30:03       32 阅读
  9. 【C++】简化for-range的算法函数

    2023-12-15 09:30:03       39 阅读
  10. MPI和C++/Qt混用的收发消息的例子(主从模式)

    2023-12-15 09:30:03       30 阅读
  11. redis集群模糊获取缓存redisKey

    2023-12-15 09:30:03       40 阅读