Git常用命令

这篇文章主要是为了自己能快速翻找Git命令,不做具体介绍,想学习Git怎么用,请移步廖雪峰的《Git教程》。这篇教程浅显易懂,花个几小时就能懂,上手非常快的。

Git配置:

    //配置用户名
    $ git config --global user.name "Your Name"

    //配置Email地址
    $ git config --global user.email "email@example.com"

注意:git config命令的–global参数,表示你这台机器上所有的Git仓库都会使用这个配置

下面是一些非必需的配置,看个人喜好。

    //配置显示颜色
    $ git config --global color.ui true

    //配置别名(非必须,可忽略)
    $ git config --global alias.st status 
        //将status配置为st = $ git status => $ git st
    $ git config --global alias.co checkout
    $ git config --global alias.ci commit
    $ git config --global alias.br branch
    $ git config --global alias.unstage 'reset HEAD' 
        //$ git reset HEAD file => $ git unstage file
    $ git config --global alias.last 'log -1'
        //显示最后一次提交信息 $ git last

初始化/添加/提交:

    //初始化Git仓库
    $ git init

    //将文件添加到仓库
    $ git add <file>
    $ git add mx.txt

    //将文件提交到仓库
    $ git commit -m "提交描述"

查看状态/历史/对比:

    //查看仓库当前状态
    $ git status

    //查看修改内容,对比
    $ git diff

    //查看工作区和版本库最新版本区别
    $ git diff HEAD -- mx.txt

    //显示最近到最远的提交日志,提交历史
    $ git log
    $ git log --pretty=oneline

    //查看分支合并情况
    $ git log --graph
    $ git log --graph --pretty=oneline --abbrev-commit

    //查看命令操作历史记录
    $ git reflog

回退/撤销/删除:

    //回退上一个版本
    $ git reset --hard HEAD^
        //上一个版本HEAD^
        //上上一个版本HEAD^^
        //上100个版本HEAD~100
        //HEAD指当前版本

    //回退某个指定版本
    $ git reset --hard <commit_id>
    $ git reset --hard 3628164
        //3628164 commit id,版本号可以不写全,能找到就可以

    //把暂存区的修改回退到工作区
    $ git reset HEAD <file>

    //撤销工作区文件修改到最近一次commit或add
    $ git checkout -- <file>
    $ git checkout -- mx.txt

    //从版本库中删除文件
    $ git rm <file>
    $ git rm mx.txt

远程仓库:

    //本地仓库和远程仓库关联(GitHub仓库)
    $ git remote add origin git@server-name:path/repo-name.git
    $ git remote add origin git@github.com:github用户名/github仓库
    $ git remote add origin git@github.com:mingsixue/mxue.git
        //origin 远程仓库名字,Git默认叫法

    //查看远程仓库信息
    $ git remote

    //查看远程仓库更详细信息
    $ git remote -v

    //把本地仓库内容推送到远程仓库
    $ git push -u origin master
    $ git push origin <branch_name>
    $ git push origin master
        //-u 参数会把本地master分支和远程master分支关联起来

    //把远程仓库内容拉到本地仓库
    $ git pull

    //指定本地dev分支和远程origin/dev分支链接
    $ git branch --set-upstream <branch_name> origin/<branch_name>
    $ git branch --set-upstream dev origin/dev

    //从远程仓库克隆
        //SSH方式
        $ git clone git@github.com:mingsixue/mxue.git
        //HTTPS方式
        $ git clone https://github.com/mingsixue/mxue.git

分支管理:

    //创建新的分支
    $ git branch <branch_name>
    $ git branch dev

    //创建新分支并切换
    $ git checkout -b <branch_name>
    $ git checkout -b dev
        //-b创建分支并切换,相当于下面命令
        //$ git branch dev
        //$ git checkout dev

    //切换分支
    $ git checkout <branch_name>
    $ git checkout dev

    //查看当前分支
    $ git branch

    //把dev分支合并到master,快进模式Fast-forward,删除分支后会丢掉分支信息
    $ git merge <branch_name>
    $ git merge dev

    $ git merge --no-ff -m "提交描述" dev
        //--no-ff表示禁用Fast-forward,普通合并模式,会创建一个新的commit

    //删除分支
    $ git branch -d <branch_name>
    $ git branch -d dev

    //强行删除分支
    $ git branch -D <branch_name>
    $ git branch -D dev

    //储存工作现场
    $ git stash

    //查看储存的工作现场
    $ git stash list

    //恢复储存的工作现场内容
    $ git stash apply
    $ git stash apply stash@{0}

    //删除储存的工作现场
    $ git stash drop

    //恢复并删除工作现场
    $ git stash pop
        //相当于上面两条命令

标签:

    //创建标签
    $ git tag <tag_name>
    $ git tag v1.0
        //默认标签打在最新的commit上

    //创建指定commit id的标签
    $ git tag <tag_name> <commit_id>
    $ git tag v0.9 6224937

    //创建带说明的标签
    $ git tag -a <tag_name> -m "标签描述" <commit_id>
    $ git tag -a v0.1 -m "标签描述"
    $ git tag -a v0.1 -m "标签描述" 3628164

    //查看所有标签
    $ git tag

    //查看标签信息
    $ git show <tag_name>
    $ git show v0.9

    //删除标签
    $ git tag -d <tag_name>
    $ git tag -d v0.9

    //推送标签到远程仓库
    $ git push origin <tag_name>
    $ git push origin v0.9

    //一次性推送标签到远程仓库
    $ git push origin --tags

    //删除远程仓库标签
    $ git push origin :refs/tags/<tag_name>
    $ git push origin :refs/tags/v0.9
        //本地要先删除标签

忽略特殊文件

在Git工作区的根目录创建 .gitignore 文件,把要忽略的文件名写进去,一行一个,支持 * 匹配。写完后提交到Git。

具体怎么忽略,看这里忽略特殊文件

    //查看文件被哪条规则忽略
    $ git check-ignore -v <file>

    //强制添加文件
    $ git add -f <file>

命令行:

一些常用的命令行命令。

    //创建空目录
    $ makir <dir_name>
    $ mkdir mxue

    //进入mxue目录
    $ cd <dir_name>
    $ cd mxue

    //显示当前目录路径
    $ pwd

    //查看隐藏目录
    $ ls -ah

    //查看文件内容
    $ cat <file>
    $ cat mx.txt

    //删除文件
    $ rm <file>
    $ rm mx.txt

git错误:

错误:fatal: refusing to merge unrelated histories

    $ git pull origin master --allow-unrelated-histories

参考文章:git无法pull仓库refusing to merge unrelated histories

错误:failed to push some refs to ‘git@github.com:mingsixue/Chrome-Plugin.git’

$ git pull --rebase origin master

出现错误的主要原因是github中的README.md文件不在本地代码目录中
参考文章:如何解决failed to push some refs to git

http://blog.mingsixue.com/it/git-command-line.html

<think>我们被要求生成一个关于Git常用命令的汇总列表。根据用户的要求,我们需要提供结构清晰的回答,并尽量保证真实可靠。同时,我们参考了站内引用中提供的Git命令信息。根据引用内容,我们可以整理出以下常用命令:1.基本操作(初始化、添加、提交等)2.分支管理3.远程仓库操作4.标签管理5.历史查看与撤销6.其他实用命令(如删除大文件、清理仓库等)我们将按照这些类别来组织命令。注意:由于引用中提供了一些特定问题的解决方案(如删除大文件),我们也会将其作为实用命令的一部分。另外,注意用户要求使用中文回答,并且行内数学表达式使用$...$格式(但本问题不涉及数学表达式,所以忽略),独立公式使用$$...$$格式(同样不涉及)。同时,在回答末尾生成相关问题。我们开始整理Git常用命令汇总:</think>### Git常用命令汇总 以下是Git常用命令分类整理,帮助您高效管理代码版本: #### 1. 仓库初始化与基础操作 ```bash # 初始化新仓库 $ git init # 克隆远程仓库 $ git clone <远程仓库URL> # 查看当前状态 $ git status # 添加文件到暂存区 $ git add <文件名> # 添加单个文件 $ git add . # 添加所有修改 # 提交更改 $ git commit -m "提交说明" ``` #### 2. 分支管理 ```bash # 创建分支 $ git branch <新分支名> # 切换分支 $ git checkout <分支名> $ git switch <分支名> # Git 2.23+推荐方式 # 创建并切换分支 $ git checkout -b <新分支名> $ git switch -c <新分支名> # 合并分支 $ git merge <要合并的分支名> # 删除分支 $ git branch -d <分支名> # 安全删除 $ git branch -D <分支名> # 强制删除未合并分支 ``` #### 3. 远程仓库操作 ```bash # 添加远程仓库 $ git remote add origin <远程仓库URL> # 查看远程仓库 $ git remote -v # 推送到远程仓库 $ git push -u origin <分支名> # 首次推送 $ git push # 后续推送 # 拉取远程更新 $ git pull origin <分支名> $ git pull --rebase origin <分支名> # 变基式拉取 # 删除远程连接 $ git remote rm origin ``` #### 4. 版本回退与撤销 ```bash # 查看提交历史 $ git log $ git log --oneline # 简洁版日志 # 撤销工作区修改 $ git checkout -- <文件名> # 撤销暂存区文件 $ git reset HEAD <文件名> # 版本回退 $ git reset --hard <commit_id> # 彻底回退 $ git reset --soft <commit_id> # 保留修改 # 恢复删除的文件 $ git restore <文件名> # Git 2.23+ ``` #### 5. 标签管理 ```bash # 查看标签 $ git tag # 创建标签 $ git tag <标签名> # 轻量标签 $ git tag -a v1.0 -m "版本说明" # 附注标签 # 推送标签 $ git push origin <标签名> # 删除标签 $ git tag -d <标签名> # 本地删除 $ git push origin :refs/tags/<标签名> # 远程删除 ``` #### 6. 高级维护 ```bash # 清理历史大文件 $ git filter-branch --force --index-filter \ 'git rm -rf --cached --ignore-unmatch <文件名>' \ --prune-empty --tag-name-filter cat -- --all # 回收存储空间 $ git reflog expire --expire=now --all $ git gc --prune=now # 查看仓库大小 $ git count-objects -vH ``` #### 7. 配置相关 ```bash # 设置用户名/邮箱 $ git config --global user.name "用户名" $ git config --global user.email "邮箱" # 查看配置 $ git config --list # 设置默认编辑器 $ git config --global core.editor vim ``` > **最佳实践提示**: > 1. 频繁提交小变更,保持提交记录清晰 > 2. 使用`.gitignore`文件排除无需版本控制的文件 > 3. 重要分支(如main/prod)设置保护规则 > 4. 推送前先执行`git pull --rebase`避免合并提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值