git入门(学习中)

本文为《pro-git》的读书笔记,后面根据实际学习进度会慢慢更

目前为git简单使用中常见的命令

1.克隆仓库

git clone [url] <本地名>

 克隆一个已有的git库,克隆git仓库的所有数据,可能会损失挂钩

2.代码状态分类

untracked 未跟踪,未被纳入版本控制

以下全部为已跟踪

Unmodified 未修改,

Modified 已修改,

Staged 放入暂存区,

3.查看仓库状态

git status <-s,--short>查看文件状态,<简短模式>

新clone的git会显示分支位置及提示“干净的工作目录”

git入门(学习中)

4.将文件加入追踪

git add [文件名] 将文件加入追踪

tip:untracked文件通过git add后直接进入staged状态

tip:修改原有文件后利用git add将文件状态改为staged状态,git add命令为“将文件添加到下次commit中”

5.创建.gitignore文件忽略不需要版本控制的文件

git入门(学习中)

 

6.移除文件

git rm <文件名> 删除文件,不只不追踪,连带删除本地文件(心急的代价)

文件名可用glob正则匹配

git入门(学习中)

7.重命名

git mv [老文件名] [新文件名]

实际上相当于改名,rm,add 三个命令

8.查看提交历史

git log <-p,显示每次提交的差异> <-num,显示最近的num个提交>

<--stat,显示每次提交的总结性简略信息>(列出所有被修改过的文件、有多少文件被修改了以及被修改过的文件的哪些行被移除或是添加了, 在每次提交的最后还有一个总结)

<--pretty=[online,full,…,fuller][format:“写个格式”],使用不同格式展示提交历史>

git入门(学习中)

<--graph,在日志旁以 ASCII 图形显示分支与合并历史>

git入门(学习中)

<--since,--until 通过时间过滤commit>

<--author,通过作者过滤提交>

<--grep,根据提交说明过滤>

<--all-match,强调全部过滤条件都要满足>(存疑,实操过程中不加也是要求全满足)

<-S[字符串],筛选添加或删除了该字符串的commit>

git入门(学习中)

<--decorate,检查各分支当前所指对象>

9.撤销commit

git commit --amend

用这次commit去代替上次comint,就可以实现撤销

10.取消暂存文件

staged -> modified

git reset HEAD [文件名]

11.取消对文件的修改

modified ->unmodified

git checkout -- [文件名] (--与文件名之间有空格)

12.查看远程仓库

git remote <-v,显示远程仓库的URL>

13.添加远程仓库

git remote add [简写] [URL] 可用简写代替URL

14.从远程仓库中抓取

git fetch [简称]

抓取之后并不会自动合并,只是给你一个快照,要想合并到本地分支还要merge或者自己创建新的本地分支branch

15.推送到远程仓库

git push [仓库简称] [分支名] <--tags,push所有不存在的tag> <tagname,添加tag名>

16. 查看远程仓库

git remote show [分支名]

17.远程仓库重命名

git remote rename [旧名字] [新名字]

18.移除远程仓库

git remote [仓库简称]

19.列出git中的tag

git tag <-l,寻找特定标签> <-a,创建一个附注标签><直接写即为轻量标签><-d tagname,删除标签>

git入门(学习中)

git入门(学习中)

-d的删除标签命令并不会同步到远程仓库上

20.切换分支

git checkout <-b,创建并切换到该分支>[分支名]

21.查看所有分支、创建、删除分支

git branch <-v,查看所有分支的最后一个提交><--merged,过滤出已经合并的分支><--mo-merged,过滤出未经合并的分支>列出当前所有分支

git branch <-b,删除分支> [分支名]

22.合并分支

git merge [被合并分支] 所在分支为并入分支

23.显示远程分支

git ls-remote

24.变基,另一种合并方式

git rebase<--onto [目标分支][不加入分支][变基分支]将变基分支加入到目标分支中但不加入不加入分支的改变>反正挺绕的