美文网首页前端杂记
Git实用命令指南

Git实用命令指南

作者: 会飞小超人 | 来源:发表于2018-11-26 17:56 被阅读5次

1. 团队工作基本模型

建立初始远程仓库->各人拉取远程仓库到本地->建立自己的开发分支->开发完成后push新的分支到远程仓库,以保存且同步->review代码后无问题,合并到master分支

2. 创建并切换到自己分支工作

查看所有分支

git branch -a

说明:后面的参数-a表示查看所有的分支,主要应用于从远程pull下来的分支,因为远程拉过来的分支非自己创建的,所以直接git branch看不到
切换分支

git branch <分支名>

创建并切换到这条分支

git checkout -b <分支名>

把当前分支push到远程

git push origin <分支名>

说明:第一次创建远程没有的分支时,push需要带上分支名。后面git push不加参数时,就会默认推送到这个指定的分支了。
推送分支且和远程分支同步

git push origin <分支名> -u

说明:可以发现用上面的git push后,虽然把本地的分支推送上远程仓库了,但是此时想要git pull的话,会出现类似于这样一个提示

image.png

意思就是说当前这个分支还没有远程跟踪,所以没有办法拉取远程代码。而在git push后面加一个-u就是解决这个问题。当然了,也可以不加这个参数,然后在pull的时候按照这个命令提示,加上远程分支的跟踪。

3.拉取远程仓库

初始拉取远程仓库

git clone <git仓库链接>

说明:git clone操作会拉取远程仓库的所有分支,不过拉下来后默认是处于master分支,可以使用git branch -a来查看所有的分支。使用git checkout <分支名>来切换到指定分支。
同步远程代码到本地

git pull

说明:git pull不加分支名,表示拉取远程仓库所有默认同步的分支。这里默认同步的分支是初次git clone的时候远程仓库里包含的分支。git clone之后,远程仓库新添加的分支,则是拉不到的。如果要拉取新的分支,就需要指定分支名:git pull origin <分支名>

3. 文件的三种状态以及各自的撤销方法:

  1. 未加入暂存区
git checkout <文件名>
  1. 已加入暂存区,未提交更改
  git reset HEAD
  1. 已提交更改
 git reset --hard HEAD^

4. 快捷提交(add+commit)

git commit -a

5. 合并分支

假设当前HEADmaster上,需要合并feature1的分支

git merge feature1

这里会有这几种情况:

  1. master分支和feature1分支产生分叉,那么git会把feature1分支从分叉的地方开始的所有的更改内容合并到master上,并生成一个新的commit。但是master分支里不会有feature1分支的commit记录。
  2. master分支和feature1分支没有分叉且feature1分支领先于master分支。换言之,从master拉出feature1分支后,master分支一直没有任何提交,只有feature1分支有提交内容。此时git会执行fast-forward操作,直接把masterHEAD移动到feature1的位置上。同时master也会包含feature1的所有commit历史。此时masterfeature1处在同一commit的节点。
  3. master分支和feature1分支没有分叉且master分支领先于feature1分支。换言之,从master拉出feature1分支后,feature1分支一直没有任何提交,只有master分支有提交内容。此时git不会执行任何操作,命令行会提示Already up to date。反过来,切换到feature1分支,然后执行git merge master,可以将HEADfeature1移动到master的位置。与上面同理,feature1也会包含master的所有commit历史。此时masterfeature1处在同一commit节点。(这也映证了分支并无主次之分,所有分支都是平等的,并不会因为有的分支叫master就会针对它会有一些特殊性。--这是git的特性,github还是有写区别的)

6.实用黑科技

stash:临时存放工作目录的改动。在 Git 中,stash指令可以帮你把工作目录的内容全部放在你本地的一个独立的地方,它不会被提交,也不会被删除,你把东西放起来之后就可以去做你的临时工作了,做完以后再来取走,就可以继续之前手头的事了。
具体说来,stash 的用法很简单。当你手头有一件临时工作要做,需要把工作目录暂时清理干净,那么你可以:

git stash

就这么简单,你的工作目录的改动就被清空了,所有改动都被存了起来。
重新取出这个缓存继续之前的代码编写:

git stash pop

说明:
没有被 track 的文件(即从来没有被 add 过的文件不会被stash 起来,因为 Git 会忽略它们。如果想把这些文件也一起stash,可以加上 -u 参数,它是 --include-untracked 的简写。就像这样:

git stash -u

参考链接:
git push与pull的默认行为 https://segmentfault.com/a/1190000002783245

相关文章

  • git实用命令

    git实用命令 1 git init 命令 初始化 git 仓库 repository 2 git add 命令 ...

  • Git实用命令指南

    1. 团队工作基本模型 建立初始远程仓库->各人拉取远程仓库到本地->建立自己的开发分支->开发完成后push新的...

  • 161013 Git 折腾记录

    git 简明指南: git - the simple guide - no deep shit! git 命令安装...

  • 2.git进阶篇总结

    阅读 Git 原理详解及实用指南 记录 进阶 1 - HEAD、master 与 branch: 介绍了 Git ...

  • Git-源代码管理工具

    Git入门指南十一:Git branch 分支与合并分支 Git命令大全 目录 一. 掌握 - git 概述二. ...

  • git branch 分支与合并

    在使用 git 进行分支开发与合并的时候需要用到这些命令。其他基本 git 命令参考 Git 简易食用指南 git...

  • Git [提交记录查看、提交、变基](I)

    Git 简易指南Git 参考手册Pro Git(中文版)Git教程 廖雪峰 查看提交记录 终端命令git log:...

  • git入门

    参考博文git权威指南地址Windows安装gitgit官网git官方命令 git 安装 http://msysg...

  • Git手册

    给自己看的GIT指南 给前看后忘不用就忘的自己写的指南。不求完备,但求清晰实用。 基础操作 git init [p...

  • 【git】git实用基本概念 git add git comm

    git使用要从官网下载 .exe文件安装实用,实用Linux命令,(why,因为git的创始人就是Linux的创始...

网友评论

    本文标题:Git实用命令指南

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