aurora-article icon indicating copy to clipboard operation
aurora-article copied to clipboard

git 学习

Open starryiu opened this issue 4 years ago • 0 comments

熟练git已经时现在程序员的标配了,然而在上手一段时间的git之后,发现git并不简单,所以特意写一篇文章用来记录git的知识点。~原文时间:2020-10-25 15:40~

在看了官方推荐的文档Git-book之后,可以说是懵的。 吐槽点:

  1. 我只想知道怎么用,我该怎么做。而Git-book讲解的更多是git的概念相关,作为小白自然就懵了。
  2. git命令非常的乱,一堆别名也非常让人头疼,而且在Git-book中还经常会在没有说明的情况下直接使用这些别名,然后用完了在告诉你,或者干脆不做讲解。
  3. git的log信息非常不友好,想要看到较直观的log,必须要加一堆参数。

总结:对于我这样的小白来说git相当不友好。

吐槽归吐槽,不论是公司要求还是未来的发展趋势,git在版本控制中占据主流,所以还是要硬着头皮学。

在网上搜寻了一番,找到了一些不错的文档

  1. git-recipes 一个实用主义的文档,主要教一些常用命令和少量的概念。
  2. 廖雪峰老师的git教程 讲的只是点不是很全,但循序渐进。
  3. coding的代码托管教程 由于github网速限制,现在很多公司都在用coding。
  4. 菜鸟教程 简洁,对于从来没有使用过git的新手非常不错。
  5. Git-book 官方推荐文档,比较难,有非常多概念性的东西。

git配置全局用户名和邮箱

git config --global user.name "John Doe"

git config --global user.email [email protected]

git查看全局配置

git config --list

创建空的git仓库

在所要创建的目录下git init

添加文件到Git仓库

git add <文件路径> git commit -m "说明信息"

查看文件状态和比较文件差异

git status git diff <文件路径>

查看最近提交的信息

git log

版本回退

//回退到上一个版本
git reset --hard HEAD^
//回退到上上个版本
git reset --hard HEAD^^
//回退到上100个版本
git reset --hard HEAD~100
//回退到指定版本
git reset --hard <指定版本号前几位>

HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。

穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。

要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

提交修改

git add <文件路径>

撤销修改

##在工作区

撤销工作区的修改 git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销。

一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

##已经添加到暂存区

撤销暂存区的修改

git reset HEAD

创建ssh Key

ssh-keygen -t rsa -C "邮箱地址"

#远程仓库

添加远程仓库

git remote add <customName>

例子

git remote add pd git push -u pd master 上传pd仓库的master分支,pd是远程仓库的一个别名,-u表示指定一个默认的远程仓库,之后再提交直接git push 即可

查看远程仓库

git remote

直接从远程仓库克隆

git clone

这是最常见的作法

#分支

新建分支

git checkout -b <分支名> 创建并切换分支

相当于

git branch <分支名> 创建分支 git checkout <分支名> 切换分支

查看分支

git branch

切换分支

git checkout <分支名> 切换分支

合并分支到当前分支

需要提交之后才可以合并

git merge <分支名>

删除分支

git branch -d <分支名>

新的切换分支命令switch

git switch -c dev //创建并切换到dev分支、

git switch dev //切换到dev分支

储藏功能

工作只进行到一半,还没法提交,但是要修复bug分支

git stash 把当前工作现场“储藏”起来

git stash list 查看工作现场

git stash pop 恢复工作现场并删除

标签

创建普通标签

git tag <tagName>

创建附注标签

git tag -a <tagName> -m "备注"

查看标签

git tag

查看标签信息

git show <tagName>

默认标签是打在最新提交的commit上的。

如果要对某个特定的commit打标签则需要指定commit id

git tag -a <tagName> -m "备注" <commitId>

##标签的其他操作

命令git push origin 可以推送一个本地标签;

命令git push origin --tags可以推送全部未推送过的本地标签;

命令git tag -d 可以删除一个本地标签;

命令git push origin :refs/tags/可以删除一个远程标签。

忽略特殊文件 .gitignore

/mtk/ 过滤整个文件夹
*.zip 过滤所有.zip文件
/mtk/do.c 过滤某个具体文件

starryiu avatar Mar 01 '21 14:03 starryiu