zoukankan      html  css  js  c++  java
  • git常用命令总结

    1. git的常用操作

    1. 文件基本操作 描述
    git help <command> 显示command的help
    git show ($id) 显示某次提交的内容
    git ls-files 查看版本控制区的所有文件
    git status 查看文件状态
    git add <file> 将工作文件修改提交到本地暂存区
    git add . 将所有修改过的工作文件提交暂存区
    git rm <file> 从版本库中删除文件
    git rm --cached 从版本库中删除文件,但工作区不删除文件
    git reset 从暂存区恢复到工作文件
    git reset -- . 从暂存区恢复到工作文件
    git reset --hard 恢复最近一次提交过的状态,即放弃上次提交后的所有本次修改
    git commit -m "xxx" 将暂存区所有文件提交到版本控制区
    git commit -am "xxx" 等同于 git add && git commit -m "xxx"
    git commit --amend 修改最后一次提交记录
    git checkout -- 抛弃工作区修改
    git checkout . 抛弃工作区修改
    git revert <$id> 恢复某次提交的状态,恢复动作本身也创建次提交对象
    git revert HEAD 恢复最后一次提交的状态

    mark


    2. 查看文件diff 详情见下图

    mark

    3. 查看提交记录 描述
    git log 查看提交记录
    git log <file> 查看该文件每次提交记录
    git log -p <file> 查看每次详细修改内容的diff
    git log --stat 查看提交统计信息
    git reflog 查看所有提交版本记录

    4. 分支操作 描述
    git branch -r 查看远程分支
    git branch <new_branch> 创建新的分支
    git branch -v 查看各个分支最后提交信息
    git branch --merged 查看已经被合并到当前分支的分支
    git branch --no-merged 查看尚未被合并到当前分支的分支
    git checkout <branch> 切换到某个分支
    git checkout -b <new_branch> 创建新的分支,并且切换过去
    git checkout -b <new_branch> <branch> 基于branch创建新的new_branch
    git checkout $id 把某次历史提交记录checkout出来,但无分支信息,切换到其他分支会自动删除
    git checkout $id -b <new_branch> 把某次历史提交记录checkout出来,创建成一个分支
    git branch -d <branch> 删除某个分支,若该分支未merge,则不成功
    git branch -D <branch> 强制删除某个分支

    5. 分支合并和rebase 描述
    git merge <branch> 将branch分支合并到当前分支
    git merge origin/master --no-ff 不要Fast-Foward合并,这样可以生成merge提交

    6. Git远程分支管理 描述
    git pull 抓取远程仓库所有分支更新并合并到本地
    git pull --no-ff 抓取远程仓库所有分支更新并合并到本地,不要快进合并
    git fetch origin 抓取远程仓库更新
    git merge origin/master 将远程主分支合并到本地当前分支
    git checkout --track origin/branch 跟踪某个远程分支创建相应的本地分支
    git checkout -b <local_branch>
    origin/<remote_branch>
    基于远程分支创建本地分支,功能同上
    git push push所有分支
    git push origin master 将本地主分支推到远程主分支
    git push -u origin master 将本地主分支推到远程(如无远程主分支则创建,用于初始化远程仓库)
    git push origin <local_branch> 创建远程分支, origin是远程仓库名
    **git push origin <local_branch>:<remote_branch> ** 创建远程分支
    git push origin :<remote_branch> 先删除本地分支(git br -d <branch>),然后再push删除远程分支

    7. Git远程仓库管理 描述
    git remote -v 查看远程服务器地址和仓库名称
    git remote show origin 查看远程服务器仓库状态
    git remote add origin
    git@github:xx/xxx.git
    添加远程仓库地址
    git remote set-url origin
    git@github.com:xx/xxx.git
    设置远程仓库地址(用于修改远程仓库地址)
    git remote rm <repository> 删除远程仓库

    8. 创建远程仓库 描述
    git clone --bare xx xxx.git 用带版本的项目创建纯版本仓库
    git remote add
    origin git@ github.com:xxx/xx.git
    设置远程仓库地址
    git remote set-head origin master 设置远程仓库的HEAD指向master分支
    git push -u origin master 客户端首次提交
    git push -u origin develop 首次将本地develop分支提交到远程develop分支,并且track
    git push <主机名>
    <本地分支名> <远程分支名>
    git push 的一般形式
    git push origin master 省略远程分支,表示将本地分支推送到与之存在追踪关系的分支(通常两者同名)
    git push origin :/refs/for/<branch> 省略本地分支,表示删除远程的<branch>分支
    refs/for 的意义在于我们提交代码到服务器之后,
    需要经过code review 之后才能进行merge的,而refs/heads 不需要

    2. .gitignore

    有时候我们可能不希望同步某些文件,比如.pyc,.o等,但为了方便,我们通常都是直接同步所有本地文件,这个矛盾如何解决呢?
    答案就是:建立一个.gitignore文件,将不需要同步的文件名全部写入到该文件中。

    • 位置:需要同步git的目录下
    • 作用:将内部列出的文件不做版本管理(即不进行同步)
    • 创建:touch .gitignore

    ①. 强制过滤

    • /mtk/ : 过滤整个文件夹
    • *.pyc : 过滤所有.pyc的文件
    • /mtk/tst.pyc : 过滤指定文件

    ②. 强制添加
    将某些文件强制同步到git中

    • !/mtk/
    • !*.pyc

    区别在于前面多了个!.

    PS: 一定要在git push之间创建该文件,否则,他就失去了应有的作用。
    若在.gitignore建立之前就上传了不必要的文件(夹),可使用

    git rm -r --cached directory
    

    命令进行删除缓存区和仓库的文件

    图片来自: www.fishc.com

  • 相关阅读:
    雪花算法 Java 版
    Java 生成有序 UUID
    Spring Boot 2 集成 Swagger
    Spring Cloud 学习 (九) Spring Security, OAuth2
    Spring Cloud 学习 (八) Spring Boot Admin
    Spring Cloud 学习 (七) Spring Cloud Sleuth
    Spring Cloud 学习 (六) Spring Cloud Config
    原创:全排列非递归算法:微软给出的算法
    原创:协同过滤之spark FP-Growth树应用示例
    转载:scala中的:++::::::
  • 原文地址:https://www.cnblogs.com/Jimmy1988/p/8274391.html
Copyright © 2011-2022 走看看