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

    本文根据廖雪峰的博客,记录下自己的学习笔记。主要记录常用的命令,包括仓库初始化、添加文件、提交修改、新建分支、内容暂存、分支管理、标签管理等内容。

    git是分布式版本控制系统。

    首先是安装,从官网下载安装包,按照提示安装即可,安装好后可以在 开始 菜单找到 Git bash,同时 右键菜单也可以看到 Git bash here。

    基本概念:

    工作区 Working Directory :电脑里面能看到的目录

    版本库 Repository:工作区中一个隐藏目录.git,这个不算工作区,而是git的版本库。

    暂存区 Stage:版本库中的一块区域

    主分支 master:在创建版本库时默认创建的一个分支

    指针 HEAD:指向某个分支中的某个commit

    创建版本库

    新建一个目录,通过如下命令可以将这个目录变成git可以管理的仓库

    git init

    提交修改

    如果新增或者修改了一个或者多个文件,采用add命令是添加到stage(暂存区),如果没有git add到暂存区,那就不会加入到commit中。

    git add file01.txt file02.txt

    git commit -m "add two file"

    查看工作空间的状态

    git status

    查看修改的内容

    git diff

    删除文件,先从工作区删除文件,然后用下面的命令,接着在commit,就可以从版本库中删除

    git rm file01.txt

    撤销误删除,可以从版本库里面恢复误删文件到工作区

    git checkout -- file01.txt 

    版本管理

    查看提交日志和分支历史

    git log

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

    git log --graph --oneline --decorate  --all

    回退到上一个版本

    git reset --hard HEAD^

    回退到某个版本,下面命令中1094a的是在log中看到某个版本号

    git reset --hard 1094a

    查看所有的命令历史

    git reflog

    撤销在工作区的修改文件,注意是双短横杠--

    git checkout  --file01.txt

    撤销在暂存区的修改文件,执行后,修改的文件会保存在工作区

    git reset HEAD file01.txt

    远程仓库

    可以将本地仓库的内容和远程仓库关联起来。

    用如下命令将本地的内容和远程的仓库关联起来,添加后,远程仓库的名字就是origin

    git remote add origin git@github.com:colin/learngit.git

    推送本地内容到远程库,参数-u会把本地的master分支内容推送并且关联

    git push -u origin master

    每次本地提交后,可以采用如下命令推送最新修改

    git push origin master

    从远程拉取新的代码

    git pull origin master

    这个 pull 其实相当于下面两条命令

    git fetch

    git merge

    克隆远程仓库地址

    git clone git@github.com:colin/learngit

    分支管理

    创建dev分支,并切换到dev分支

    git checkout -b dev

    相当于如下两条命令

    git branch dev

    git checkout dev

    查看所有本地分支

    git branch

    查看所有本地和远程分支

    git branch -a

    基于远程分支创建本地跟踪分支

    git checkout --track origin/dev

    查看本地分支和远程分支的跟踪关系

    git branch -vv

    切换回master分支

    git checkout master

    把dev分支合并到master分支上,前提是当前在master分支上

    git merge dev

    合并分支时禁用Fast forward

    git merge --no-ff -m "some message" dev

    删除分支

    git branch -d dev

    临时储藏工作区

    git stash

    查看stash list

    git stash list

    恢复临时储藏的工作区

    git stash pop

    创建本地分支和远程分支的链接关系

    git branch --set-upstream-to <branch-name> origin/<branch-name>

    标签管理

    在最新的一次commit上打上标签

    git tag v1.0

    查看所有标签

    git tag

    在某次commit上打上标签,其中f5367是某次commit的id号

    git tag v0.9 f5367

    查看标签信息

    git show v0.9

    创建信息较多的标签,其中-a指定标签名,-m指定说明文字

    git tag -a v0.1 -m "some message" f5367

    删除标签

    git tag -d v0.1

    推送某个标签到远程

    git push origin v1.0

    一次性推送全部尚未推送到远程的本地标签

    git push origin --tags

    删除远程的标签,先删除本地,在push一下

    git tag -d v0.9

    git push origin :refs/tags/v0.9

    参考:

    廖雪峰 Git 教程

  • 相关阅读:
    利用Trace.WriteLine定位难以重现的问题
    技术经验分享
    辞职小记
    残阳如血--读《忆秦娥·娄山关》 有感
    一个简单多线程等待窗口
    [转]Control的Invoke和BeginInvoke
    elk 改为使用 ik 中文分词器
    在 jenkins 的 pipeline 中使用分支参数
    centos8 下删除网桥 docker0
    vscode 实现组件之间的跳转
  • 原文地址:https://www.cnblogs.com/colin220/p/10636794.html
Copyright © 2011-2022 走看看