Git学习笔记

常用命令如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
git init        初始化仓库
git add 添加文件到index
git commit 提交文件到local repo

git diff 比较文件
git reset 回退版本
git rm 删除文件
git mv 移动文件

git branch 创建分支
git checkout 切换分支
git merge 合并分支
git stash 缓存

git log 查看历史记录
git reflog 查看操作记录
git tag 创建标签
git status 查看仓库状态

git push 上传到remote repo并合并
git pull 下载到local repo并合并
git remote 操作远程仓库
git clone 下载仓库

git add

该命令将文件/目录添加到index

git add <file1> <file2>
git add <dir>
git add .


git commit

该命令将index中的内容添加到local repo中
可以先设置用户信息

1
2
git config --global user.name 'wily'  
git config --global user.email hitwhcar23@126.com

git commit -m [message]
git commit <file1> <file2> -m [message]
git commit -a 无需git add,直接提交


git diff

该命令用于比较文件的差异,主要有以下几种用法
1. >git diff [--] <file>
默认为比较index与workspace间文件的差异,若index为空,则比较HEAD与workspace
2. >git diff --cached [--] <file>
比较HEAD与index之间文件的差异
3. >git diff [HEAD~X] [--] <file>
比较[HEADX]与workspace中文件的差异
4. >`git diff [HEAD
X] [HEADY] [–] `
比较[HEAD
X]与[HEAD~Y]之间文件的差异
5. >git diff <branch1> <branch2> [--] <file>
比较两个分支上最后commit文件的差异

git reset

该命令用于回退版本,有三种参数

1
[ --soft | --mixed(默认) | --hard ]

–soft: 只回退commit到local repo的内容,可直接commit
–mixed: 同时回退local repo和index中的内容,不改动文件
–hard: 回退包括workspace在内的全部内容,人生重来

[HEAD]为当前版本
[HEAD^]为上一版本,[HEAD^^]为上上版本,以此类推
也可以使用[HEAD~10]表示之前的版本
回退之后的版本可用版本号代替HEAD

git reset [--mixed] [HEAD]


git rm

该命令用于删除文件,以免出现Changes not staged for commit错误
该命令与git add相对,add为添加文件,rm为删除文件
>git rm [--cached] <file>
默认删除workspace和index中的文件,添加–cached参数后仅删除index中的文件

git mv

git rm类似,用于移动/重命名文件
>git mv <file> <newfile>

git branch

该命令用于创建或列表分支,主要用于列表
>git branch
列表本地分支
>git branch -d <branch1>
删除分支
>git branch -m <branch1>
重命名分支
>git branch <branch1> [point]
创建本地分支branch1,可从一次commit创建,默认从当前开始
>git branch --set-upstream-to=origin/main main
跟踪remote repo的上游分支,可在status查看差别

git checkout

该命令用于切换到某分支或创建分支
可以使用该命令回退到上一次commit,会丢失所有未提交进度,慎用
>git checkout <branch1>
切换到branch1
git checkout -b <branch1>
创建并切换到分支branch1

git merge

用于将某一分支合并到当前分支,如有冲突会有提示
>git merge <branch1>

git stash

该命令用于存储未commit的文件内容
>git stash [save "message"]
添加save参数方便识别
git stash list
列表当前的存储
git stash [ apply | pop ] [stash@{X}]
默认应用第一个存储,apply不删除存储,pop应用后删除存储
git stash [ drop | clear ] [stash@{X}]
drop删除某一个存储,clear清除所有缓存

git push

该命令用于推送local repo到remote repo
>git push [-u] origin main
添加-u参数等于使用git branch --set-upstream-to=origin/main main,之后可用git push代替这条命令

git pull

该命令用于拉取remote repo到local repo
>git pull origin main
与push相反

git clone

该命令用于克隆remote repo上的文件

git clone git@github.com:wily/MarkDown.git <dir>

git 易错

‘有git文件夹的不要再进行git init’

对于无法 git clone 有问题或者过于缓慢的情况

git clone https://ghproxy.com/
用这样的一个代理就可以完成下载