• 常用git命令


    常用git命令

    git remote - 管理远程分支

    #只显示远程仓库名
    git remote
    #使用-v 选项,可以看到远程仓库的网址
    git remote -v
    #添加主机名,可以查看远程仓库详细信息
    git remote show origin
    #用于添加远程仓库
    git remote add <仓库名>  <网址>
    #修改仓库名
    git remote rename <原仓库名>  <新仓库名>
    #删除仓库
    git remote rm <主机名>


    示例

    git pull/fetch - 拉取远程仓库最新改动

    #取回远程仓库的所有更新
    git fetch <远程仓库>
    #取回指定仓库的指定分支
    git fetch <远程仓库> <分支名>
    #拉取本分支最新内容,和fetch区别是拉取并自动合并,建议使用
    git pull


    git branch - 分支操作

    #以当前分支为根基,创建新的分支,不会切换到新的分支
    git branch <新分支>
    #以当前分支为根基,创建新分支并切换到新分支
    git checkout -b <新分支>
    #查看远程分支
    git branch -r
    #查看所有分支 * 代表当前所在分支
    git branch -a
    #如果删除分支没有合并到当前分支,删除会失败
    #可以用git branch --merged和git branch --no-merged查看
    git branch -d <分支名>
    #强制删除
    git branch -D <分支名>
    #删除远程分支
    git push origin --delete <分支> 

    合并

    合并有两个命令可以使用,分别是git mergegit rebase

    git merge - 合并

    #把分支合并到当前分支
    git merge <被合并的分支>
    #合并冲突解决
    git add <冲突的文件>

    git rebase - 变基

    #把当前分支的根基变为新根基
    git rebase <新基>
    #冲突
    git rebase --continue
    #取出 client 分支,找出处于 client 分支和 server 分支的共同祖先之后的修改,然 后把它们在 master 分支上重演一遍
    git rebase --onto master server client

    示例

    比较

    这两个命令都是把分支合并到当前分支,只不过一个是合并,一个是首先变基再合并,变基使的提交历史更加整洁。但是一般推荐使用git merge即可,防止带来不必要的麻烦。

    git merge是三方合并,如下例C2、C3、C4合并

    git rebase是变换根基,就是把C2->C4的变更,在C3在应用一次,把C4的根基变为C3,然后移动Master指针即可,所以更快,但是不要对在你的仓库外有副本的分支执行变基

    git diff - 查看变更

    # 工作区和暂存区的差异
    git diff <文件名>
    #暂存区和本地仓库的差异
    git diff --cached <文件名>
    #工作区和本地仓库的差异
    git diff <commit> <文件名>
    #比较任意两次提交的差异
    git diff <commit> <commit>

    示例

    # 比较a.txt本地仓库和工作目录的差异
    git diff HEAD a.txt 
    # 比较HEAD和HEAD~2的提交差异
    git diff HEAD HEAD~2 

    git log - 查看提交历史

    # -p,用来显示每次提交的内容差异
    # 加上 -2 ,只显示最近的两次提交
    git log -p -2
    
    #选项在每次提交的下面列出额所有被修改过的文件、有多少文件被修改了以及被修改 过的文件的哪些行被移除或是添加了
    git log --stat
    
    #自定义输出格式
    git log --pretty=format
    git log --pretty=format:"%h - %an, %ar : %s"
    
    #输出的SHA-1值缩写,并在一行输出
    git log --abbrev-commit --oneline
    
    #根据提交者名字查找
    git log --author=huan.liu10  
    
    #根据日期过滤
    git log --after="2014-7-1" --before="2014-7-4"
    
    #根据提交信息过滤
    git log --grep=删除
    
    #根据文件过滤,只显示针对某个文件改动的记录
    git log -- a.txt b.txt
    
    #根据内容搜索,查看某个内容的变动记录
    git log -Saaaaaaaaaaa --oneline

    引用日志,可以查看所有提交历史,包括删除的,可以用来恢复

    git reflog

    git show - 查看提交详细内容

    # 显示HEAD的提交日志
    git show HEAD
    # 显示HEAD上一个版本提交的日志
    git show HEAD^

    git commit - 提交

    #合并上一次提交或者重新编辑上一次提交,只有一次提交记录
    git commit --amend

    git reset - 恢复/撤销

    #撤销commit,从本地仓库到暂存区,不会丢失数据
    git reset --soft <commit>
    
    #撤销暂存区,从暂存区到工作目录,不会丢失数据
    git reset <文件名>
    
    #撤销commit,从本地仓库到工作目录,会丢失数据,如果想恢复丢失commit,使用git reflog
    git reset --hard <commit>

    git checkout - 切换分支/撤销修改

    #切换分支
    git checkout <branch>
    
    #使用本地仓库的文件内容覆盖工作目录内容,也就是撤销对文件修改
    git checkout -- <文件名>

    git stash - 暂存

    当不得不切到另外一个分支,但是又不想提交时使用

    # 暂存工作目录和暂存区
    git stash
    #查看暂存列表
    git stash list
    #不会删除暂存记录
    git stash apply --index
    #会删除暂存记录
    git stash pop --index
  • 相关阅读:
    atcoder做题记录
    CSP-S2021题解
    记录近期JAVA后端开发面试总结
    技术文章系列汇总(csdn转载)
    个人技术文章系列汇总(简书)
    个人技术文章系列汇总(csdn原创)
    解密Kafka吞吐量高的原因
    Java 常见面试题整理
    restemplate调用失败提示 处理方法
    Keil MDK忽略警告:文件末尾空白行警告
  • 原文地址:https://www.cnblogs.com/abc-begin/p/8432977.html
Copyright © 2020-2023  润新知