博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Git 常用指令
阅读量:5734 次
发布时间:2019-06-18

本文共 2187 字,大约阅读时间需要 7 分钟。

基础

创建仓库

两种方式

  1. 在现有目录中初始化仓库 git init 会创建一个 .git 的子目录,含有你初始化的 Git 仓库中所有必须文件。
  2. 克隆现有的仓库 git clone <url>

暂存修改

git add <filename> 将某个文件放到暂存区

git add . 将所有修改的文件放到暂存区

忽略文件.gitignore

可以创建一个名为 .gitignore 的文件,列出要忽略的文件(即无需纳入 Git 的管理)。比如,包依赖文件等。

分支

git branch 查看本地所有分支

git branch -v 查看本地所有分支的最新提交信息

git branch -vv 信息更详细。所有的本地分支,跟踪的远程分支,领先和落后等信息。

创建分支

git checkout -b <branch> 在本地创建分支并切换到该分支上

等价于

git branch 
// 先创建分支git checkout
//再切换分支复制代码

本地分支到远程

git push --set-upstream origin 
或git push -u origin
复制代码

注意

  • 在哪个分支上创建的,内容就是基于那个分支的。

删除分支

git branch -d <branch> 删除本地分支

git push origin --delete <branch> 删除远程分支

合并分支

git merge <branch> 将分支合并到当前分支上

合并模式
  • fast-forward 子分支如果能够指向主分支的最新 commit ,那么合并时只是直接将主分支的指针指向子分支的罪行 commit。(原因是这类情况不需要解决冲突)

变基(Rebasing)

相当于将在分支上提交的改变,在另一个分支上重新进行一遍。

普通情况

  1. 先切到待合并的分支

    git checkout experiment

  2. 指定当前分支变基到主分支

    git rebase master

    rebase 会先找到两个分支的公共祖先,然后对比二者提交的差别,然后相当于将待合并的分支的提交在主分支的提交基础上重新依次提交一遍。即待合并的分支还在,只是祖先变成主分支的最新提交处。

  3. 切换到主分支

    git checkout master

  4. 将变基后的分支合并到主分支上

    git merge experiment

    此时的合并就相当于 fast-forward merge

将多个commit合并为一个

  1. git rebase -i master
  2. 保留第一个 commit 为 pick,其余为 f,此时将第一个 commit 的内容修改最合适的说明。(注意第一个不能为 pick)
  3. 如果有冲突,解决冲突
    3.1. 然后 git add .(注意不再需要 git commit)
    3.2. git rebase --continue
  4. git checkout master
  5. git merge issue

信息

git status 查看文件状态

git status -s (简短方式显示信息)

git log 查看提交历史

git show commitId 查看某次提交的具体信息

git show <branch> 查看一个分支的最后一个提交

git reflog 查看近期的 HEAD 和分支引用所指向的历史

HEAD

HEAD^ 指向上一个提交,即“HEAD 的父提交”

HEAD^n 表示上 n 个提交

commitId^

commitId^n

更新

拉取

git fetch 指令会从服务器拉取本地没有的变化,但不会修改工作目录的内容。需要自己进行合并。

git pull 指令相当于在拉取并进行合并。

暂存

有时,当你在项目的一部分上已经工作一段时间后,所有东西都进入了混乱的状态,而这时你想要切换到另一个分支做一点别的事情。问题是,你不想仅仅因为过会儿回到这一点而为做了一半的工作创建一次提交。

常用

git stash 会将修改保存到一个栈上,可以在任何时候重新应用这些改动。

git stash list 查看存储在栈上的修改。

git stash apply 应用最近的储藏。(不会移除该储藏)

git stash apply stash@{n} 指定应用的储藏。(不会移除该储藏)

git stash drop stash@{n} 移除指定的储藏。

git stash pop 应用顶层储藏并将其从栈上移除。

更多

git stash -u / git stash --include-untracked 会储藏包括任何创建的未跟踪文件

标签

git tag -i 查看所有标签

git tag -a <tagname> 创建标签

git tag -d <tagname> 删除本地标签

git push origin --delete tag <tagname> 删除远程标签

git push origin :refs/tags/<tagname> 删除远程标签

转载于:https://juejin.im/post/5bb2e8bae51d450e6e03e14e

你可能感兴趣的文章
二叉树前序中序后序遍历的非递归方法
查看>>
mysql 行转列列转行
查看>>
《设计模式系列》---桥接模式
查看>>
[Unity3d]Shader 着色器 学习前了解知识
查看>>
Linux中文件颜色所代表的属性和颜色
查看>>
Redrain duilib中事件委托存在的问题
查看>>
43、我的C#学习笔记9
查看>>
网站建表实践及优化
查看>>
字符串的简单操作
查看>>
C#新功能--命名参数与可选参数
查看>>
strtok和strtok_r
查看>>
维辰超市:借助云商城成功转型新零售
查看>>
web.xml中<load-on-start>n</load-on-satrt>作用
查看>>
python之路---进程
查看>>
1061. Dating (20)
查看>>
leetcode 【 Best Time to Buy and Sell Stock II 】python 实现
查看>>
【算法】CRF
查看>>
windows 8 微软拼音输入法
查看>>
Windows UI风格的设计(7)
查看>>
SQL中使用WITH AS提高性能 使用公用表表达式(CTE)简化嵌套SQL
查看>>