Git的常用指令

目录

初始化git仓库

修改和提交

查看状态

显示差异

提交文件到缓存区

移动/命名文件

删除文件

提交文件到仓库

查看提交历史

撤销

改变提交记录的撤销

保留提交记录的撤销

分支与标签

分支

标签

合并

远程操作

远程操作

下载

拉取

推送

临时保存


初始化git仓库

$ git clone <仓库地址>

$ git init

修改和提交

  • 查看状态

    #查看当前状态
    $ git status
    
    #查看已缓存文件状态
    $ git status –short
    

  • 显示差异

    #显示当前工作目录和暂存区的差异
    $ git diff
    
    #显示缓冲区和最近一次提交的差异
    $ git diff –cached
    
    #比较两个分支的差异
    $ git diff <branch1> <branch2>
    

  • 提交文件到缓存区

    #提交单个文件到暂存区,新文件被标记为“已跟踪”,已跟踪且被修改文件标记为“已暂存”
    $ git add <file>
    
    #提交多个文件到暂存区
    $ git add file1 file2 file3
    
    #提交所有新文件和已修改的文件, 将当前目录及其子目录中的所有文件提交到暂存区。包括新文件、已修改的文件和已删除的文件
    $ git add .
    
    #提交所有新文件和已修改的文件,但不包括已删除的文件, 将所有已跟踪的文件的更改提交到暂存区。包括已修改的文件和已删除的文件,但不包括新文件
    $ git add -u
    
    #提交所有新文件、已修改的文件和已删除的文件,将所有文件的更改提交到暂存区。包括新文件、已修改的文件和已删除的文件
    $ git add -A
    

  • 移动/命名文件

    #重命名文件
    $ git mv <old-file> <new-file>
    
    #文件移动目录
    $ git mv <file> <new-directory>
    
    #文件移动目录并重命名
    $ git mv <old-file> <new-file>
    

  • 删除文件

    #删除指定文件
    $ git rm <file>
    
    #删除文件并跳过工作目录
    $ git rm --cached <file>
    
    #删除目录及内容
    $ git rm -r <directory>
    

  • 提交文件到仓库

    #把暂存区的更改提交到仓库
    $ git commit -m<message>
    
    #把已修改文件(跳过暂存区)提交到仓库
    $ git commit -am <message>
    
    #通过窗口提交多行信息
    $ git commit
    

查看提交历史

#显示完整提交记录
$ git log

#显示简介的提交记录
$ git log --online

#显示指定分支提交记录
$ git log branch-name

#显示指定文件提交记录
$ git log <file>

#显示指定作者提交记录
$ git log --author=”Author Name”

#显示指定日期范围内的提交记录
$ git log --since=”2 weeks ago” --untile”1 week ago”

#显示指定提交范围内的记录: 开始的commit…结束的commit
$ git log <start-commit>..<end-commit>

#显示图形化的提交记录
$ git log --graph --oneline –all

#显示更改内容
$ git log -p

#查看远程仓库的提交记录
$ git log <remote/branch>

撤销

  • 改变提交记录的撤销

    #软回退,但保留所有更改在暂存区
    $ git reset --soft <commit>
    
    #混合回退,取消暂存区的更改,但保留工作目录中的更改
    $ git reset --mixed <commit>
    
    #硬回退,重置暂存区和工作目录
    $ git reset --hard <commit>
    
    #移除暂存区所有文件
    $ git reset
    
    #回退指定提交
    $git reset <commit>
    
    #移除暂存区指定文件
    $git reset <file>
    

  • 保留提交记录的撤销

    #撤销单个提交
    $ git revert <commit>
    
    #撤销一系列提交
    $ git revert <start-commit>..<end-commit>
    
    #撤销遇到冲突时停止,解决冲突后继续撤销
    $git revert --continue
    
    #撤销遇到冲突时停止,解决冲突后取消撤销
    $git revert --abort
    

分支与标签

  • 分支

    #列出所有本地分支
    $ git branch
    	
    #查看所有远程分支
    $ git branch -r
    
    #查看所有本地和远程分支
    $ git branch -a
    
    #创建新分支
    $ git branch <branch-name>
    
    #重命名当前分支
    $ git branch -m <new-branch-name>
    
    #重命名一条分支
    $ git branch -m <old-branch-name> <new-branch-name>
    
    #删除分支,分支未合并则停止删除
    $ git branch -d <branch-name>
    
    #强制删除未合并的分支
    $ git branch -D <branch-name>
    
    #切换到指定分支
    $ git checkout <branch-name>
    
    #创建并切换到新分支
    $ git checkout -b <branch-name>
    
    #从指定的提交中检出文件
    $ git checkout <commit> <file>
    
    #撤销工作目录中的更改
    $ git checkout <file>
    
    #检出远程分支并创建本地分支
    $ git checkout -b <local-branch-name> origin/<remote-branch-name>
    

  • 标签

    #列出所有标签
    $ git tag
    
    #创建轻量标签
    $ git tag <tag-name>
    
    #创建注释标签
    $ git tag -a <tag-name> -m "Tag message"
    
    #查看标签信息
    $ git show <tag-name>
    
    #删除本地标签
    $ git tag -d <tag-name>
    

合并

#将分支的更改合并到当前分支
$ git merge <source-branch>

#创建一个新的合并提交
$ git merge --no-ff <source-branch>

#使用指定的合并策略进行合并
$ git merge -s <strategy> <source-branch>

#刚执行了 git merge命令,但还没有提交合并结果,可以取消合并操作
$ git merge --abort

#告知已解决所有冲突,继续进行合并
$ git merge --continue

#将当前分支的更改重新应用到 <base-branch> 上
$ git rebase <base-branch>

#交互式变基允许你更精细地控制提交历史
$ git rebase -i <base-branch>

#解决冲突之后继续操作
$ git rebase --continue

#取消本次操作
$ git rebase --abort

远程操作

  • 远程操作

    #列出所有远程仓库的名称
    $ git remote
    
    #列出所有远程仓库及其对应的 URL
    $ git remote -v
    
    #显示指定远程仓库详细信息
    $ git remote show <remote-name>
    
    #添加一个新的远程仓库
    $ git remote add <remote-name> <url>
    
    #删除指定的远程仓库
    $ git remote remove <remote-name>
    
    #修改远程仓库名称
    $ git remote rename <old-name> <new-name>
    

  • 下载

    #获取所有远程仓库的数据
    $ git fetch
    
    #获取指定远程仓库的数据
    $ git fetch <remote-name>
    

  • 拉取

    #从远程仓库获取数据合并到当前分支
    $ git pull
    
    #从指定远程仓库获取数据合并到当前分支
    $ git pull <remote-name>
    
    #从指定远程仓库的指定分支获取数据并合并到当前分支
    $ git pull <remote-name> <branch-name>
    

  • 推送

    #推送当前分支到默认远程仓库
    $ git push
    
    #推送指定分支到指定远程仓库
    $ git push <remote-name> <branch-name>
    
    #推送所有分支到指定远程仓库
    $ git push <remote-name> --all
    
    #推送所有标签到指定远程仓库
    $ git push <remote-name> --tags
    
    #推送单个标签到远程仓库
    $ git push <remote-name> <tag-name>
    
    #删除远程标签
    $ git push <remote-name> --delete <tag-name>
    
    #推送指定分支到指定远程仓库并设置上游分支关系
    $ git push -u <remote-name> <branch-name>
    

临时保存

#保存当前工作目录中未提交的更改
$ git stash

#查看stash列表
$ git stash list

#最新的 stash 应用到当前工作目录,但不会从stash栈中移除
$ git stash apply

#最新的stash应用到当前工作目录,并从stash栈中移除
$ git stash pop

#从stash栈中移除最新的stash
$ git stash drop

#应用指定的stash,索引值越小的数据越新
$ git stash apply stash@{<index>}

#应用并移除指定的stash
$ git stash pop stash@{<index>}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值