美文网首页
常用git命令

常用git命令

作者: 一颗老鼠屎 | 来源:发表于2019-09-26 21:18 被阅读0次

参考

git简介 https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

通用命令

help & vim

git [命令] --help

git status
git cat xxx
git vim xxx
git tail xxx

diff

git diff xxx

具体想要看是哪里做了修改,用此命令,比较的是工作区和暂存区的不同

git add xxx
git diff xxx

add以后,此处应该不存在不同

git diff HEAD -- xxx

比较工作区和版本库的不同 这里的HEAD指的是当前分支版本最近的一次commit
git commint -m "add a file(comment)"
只会提交暂存区中的"变化",不管工作区中的”修改“

rm & clean

git rm xxx

和git add xxx一样的效果,都是将文件的变化从工作区保存到暂存区,不过git rm 的使用一般是在,文件(rm xxx)被删除后。
换一种理解,rm xxx 删除的是工作区的文件, git rm xxx 删除的是暂存区的文件,然后再git commit -m ""

git clean -f

删除 untracked files

git clean -fd

连 untracked 的目录也一起删掉

git clean -xfd

连 gitignore 的untrack 文件/目录也一起删掉 (慎用,一般这个是用来删掉编译出来的 .o之类的文件用的)

在用上述 git clean 前,墙裂建议加上 -n 参数来先看看会删掉哪些文件,防止重要文件被误删

git clean -nxfd
git clean -nf
git clean -nfd

初次拉代码

ssh

ssh-keygen -t rsa -C "youremail@example.com"

生成秘钥

config

git config user.name
git config user.email

查看用户名和邮箱地址

git config --global user.name "username"
git config --global user.email "email"

设置用户名和邮箱地址

git config --list

查看Git所有配置

git config --global --unset user.name

删除配置中的用户名

或者:进入.git中,gedit编辑config文件,修改指定项即可

clone

git clone git@github.com:13575294417/haha.git

克隆项目到本地

remote

git remote -v

查看远程地址能否 push 和fetch

git remote add origin git@github.com:13575294417/haha.git

添加一个远程地址,名称为origin

git remote remove <name>

删除某个远程地址

回退重置相关命令

log

git log

查看初始化到"当前"时间节点的"提交"状态

git log --pretty=oneline

简化的日志信息,只显示ID,注释

git log --graph --pretty=oneline --abbrev-commit

图形化界面

git reflog

查看初始化后所有时间节点的重置、提交、切换分支、合并分支状态

reset

git reset --hard HEAD^

返回上一个版本,同时重置工作区和暂存区

git reset --hard HEAD^^

返回上上个版本,同时重置工作区和暂存区

git reset --hard HEAD~100

返回前100个版本,同时重置工作区和暂存区

git reset --hard 版本号

--hard 工作区,暂存区,版本库,保持一致,一起回退
--soft 工作区,暂存区不变化,只是回退版本库
--mixed reset的默认参数,工作区不变化 ,暂存区和版本一起回退

git reset HEAD xxx

将暂存区的xxx文件回退到最新版本,不影响工作区的修改
个人理解:一般是针对文件

git reset HEAD .

将暂存区回退到最新版本,不影响工作区的修改
个人理解:一般是针对暂存区

checkout

git checkout -- xxx

将工作区中xxx文件的状态回置为暂存区的状态,--必须不能少
个人理解:一般是针对文件

git checkout -- .

将工作区的状态回置为暂存区的状态,--必须不能少
个人理解:一般是针对暂存区

分支相关

branch & checkout

分支是指针,指向提交,而HEAD指向分支

git branch

查看分支

git branch <name>

创建分支

git checkout <name>

切换分支

git checkout -b <name>

创建+切换分支

git checkout -b dev origin/dev

新建分支dev并与远端origin存在的分支dev建立起联系,然后切换分支到dev

从远程仓库克隆下来后只有一个master分支,此时可以使用 git branch -a 查看有没有其他分支,如果有,那么可以使用 git checkout -b dev origin/dev 新建分支,并与远端建立关系

git branch -d <name>

删除分支,此命令只能删除已经合并后的分支

git branch -D <name>

删除分支,此命令可以强行删除未合并的分支

git branch --set-upstream-to=origin/dev dev

建立本地分支和远程分支的关联

merge

git merge <name>

合并某分支到当前分支

git merge --no-ff -m "merge with no-ff" dev

--no-ff参数,表示禁用Fast forward

合并要创建一个新的commit,所以加上-m参数,把commit描述写进去

此方式下,如果dev相比较master多提交一个commit,那么master上合并后会多两个commit,一个是dev多commit的那个,一个是合并时加上参数 -m 后的一个commit,

而fast forward下只有dev多出的commit,没有合并后 -m 的节点

git branch -a 查看所有的分支信息,包括clone下来后没有显示的分支

远程相关

push

git push -u origin master

把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,

还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

个人理解:-u origin master 将当前分支与远程origin的master分支进行关联,下次在当前分支进行推送时,默认推送到远程origin master分支上,

两个分支的名称不一样也没关系?

git push origin feature

将本地分支feature推送到远程仓库origin上面,如果origin上没有该分支则新建,如果本地没有该分支则报错,此命令可以在任何分支上进行,但不受所处分支影响,因为推送哪个分支已经指定,如feature

git push origin master

将本地master分支推送到远程库origin对应的master分支上

git push origin master:feature

将本地master分支推送到远程库origin对应的feature分支上

【如果这个分支在远程仓库里对应不同的名称(如:feature),你应该使用这个命令】

fetch & merge

git fetch 和 git merge

组合命令的参考文档:https://blog.csdn.net/u012028371/article/details/52384882

git fetch upstream

将某个远程主机的更新,全部取回本地 参考:https://www.yiibai.com/git/git_fetch.html

git fetch upstream master

取回upstream主机的master分支 所取回的更新,在本地主机上要用”远程主机名/分支名”的形式读取

git diff dev upstream/master

比较dev分支和本地远程库upstream下master分支的区别

git merge upstream/master

合并本地远程库upstream的master分支到当前分支上

stash

git stash
git stash save "本地环境配置"

保存未commit命令
把当前工作区和暂存区的内容保存起来

git stash list

存储列表,栈的形式存储

git stash apply stash@{0}

恢复编号为stash@{0}的存储内容,只恢复工作区

git stash apply --index stash@{0}

恢复工作区的同时 也恢复暂存区

git stash drop stash@{0}

删除编号为stash@{0}的存储内容

git stash pop stash@{0}

git stash pop = git stash apply + git stash drop

git log --graph --pretty=oneline --abbrev-commit

查看图形化的分支,包括合并过程

相关文章

  • Git 常用命令详解

    @[TOC](Git 常用命令详解) 1. Git 常用命令 1.1 常用git 命令图表汇总 1.2 配置个人信...

  • git相关教程汇总

    1. git常用命令 git常用命令总结git常用命令讲解 2. git教程相关网站 廖雪峰的git教程猴子都能懂...

  • GIT 版本管理 常用命令

    Git 常用命令流程图 Git常用操作命令: 初始化创建:$ git init //检出仓库:$ git clon...

  • git命令整理

    git常用命令 GIT常用命令备忘:http://stormzhang.com/git/2014/01/27/gi...

  • GIt 操作补充

    常用的git操作命令 常用的git操作命令已经能够满足日常的工作需求 现补充一些高级命令 git branch -...

  • Git

    常用Git命令

  • Git 日常知识

    git常用命令行命令: 1、git 中本地库常用的命令: 本地库的初始化:git init 本地库分支查询:git...

  • Git 常用命令及应用这一篇就够了(新手向)

    1. git 常用命令 1.1 常用命令 1.2 git remote 管理远程仓库 1.3 git r...

  • git操作

    Git原理 Git常用命令

  • GIT 常用命令总结

    GIT 常用命令总结 GIT 初始化命令 命令描述git init初始化本地 git 仓库git config -...

网友评论

      本文标题:常用git命令

      本文链接:https://www.haomeiwen.com/subject/bntmpqtx.html