1.创建一个版本库,先找一个合适的地方(repository)
$ mkdir learn git
$ cd learngit
2.显示当前目录
$ pwd
3.初始化当前目录,使其可以管理
$ init
Initialized empty Git repository in /...
4.显示git目录
ls -ah
! 不要使用windows自带的记事本来编辑任何文本文件,可以使用VSCODE代替记事本
5与6是添加文件到Git仓库
5.新建一个文件加到仓库
$ git add readme.txt
add可以反复使用。添加多个文件
6.将文件提交到仓库
$ git commit -m "wrote a readme file"
然后会出现
[master (root-commit) eaadf4e] wrote a readme file
1 file changed, 2 insertions(+)
create mode 100644 readme.txt
之类的话语
-m 后面输入的是本次提交的说明,可以输入任意内容
1 file changed 一个文件被改动
2 insertions(+) 插入了两行内容
7.查看历史纪录
$ git log
是从最近到最远
可以加上—pretty=oneline
$ git log --pretty=oneline
就会出现类似
1094adb7b9b3807259d8cb349e7df1d4d6477073 (HEAD -> master) append GPL
e475afc93c209a690c39c13a46716e8fa000c366 add distributed
eaadf4e385e865d25c48e7ca9c8395c3f7dfaef0 wrote a readme file
这些为版本号(commit id)
8.返回上一个版本
$ git reset --hard HEAD^
返回上上版本
$ git reset --hard HEAD^^
返回往上100个版本
$ git reset --hard HEAD~100
9.查看内容
$ cat readme.txt
10.返回未来
前提是还没有推送到远程版本库
使用之前的版本号
$ git reset --hard 1094a
11.查看每一次的命令记录
$ git reflog
12.查看工作区和版本库里面最新版本
$ git diff HEAD --readme.txt
HEAD 版本库 后者工作区
$ git diff readme.txt 查看改动
13.丢弃工作区的修改
无论是修改还是删除,都可以丢弃
$ git checkout -- readme.txt
1.修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一摸一样的状态
2.已经添加到暂存区,又做了修改,现在,撤回修改就回到添加到暂存区后的状态
总结:回到最近一次git commit或git add时的状态
14.将暂存区修改撤销掉,重新放回工作区
$ git reset HEAD <file...>
15.切换分支
$ git checkout
16.从版本库删除文件
注:从来没有被添加到版本库就被删除的文件,时无法恢复的
$ git rm <file..>
然后commit
17.连接远端
$ git remote add origin git@xxx
18.将版本库推送至远端
$ git push -u origin master/main
19.删除远程库
$ git remote rm origin
20.查看远端库信息
$ git remote -v
21.克隆一个本地库
$ git clone git@....
$ git clone https://
22.创建dev分支
$ git checkout -b dev
-b参数表示创建并切换
23.查看当前分支
$ git branch
24.将分支的工作成果合并到master分支
$ git merge dev
25.删除dev分支
$ git branch -d dev
26.创建并切换新的dev分支
$ git switch -c dev
27.直接切换到已有的master分支
$ git switch master
28.与普通模式合并
--no-ff
$ git merge --no-ff -m "" dev
29.储存
$ git stash
30.找回储存
第一种方法 先复制再删除
$ git stash apply
$ git stash drop
第二种方法 复制的同时删除
$ git stash pop
31.查看stash内容
$ git stash list
32.回复指定的stash
$ git stash apply stash@{0}
33.复制一个特定的提交到当前分支
$ git cherry-pick 版本号
34.丢弃一个没有被合并过的分支,可以通过
$ git branch -D <name>
强行删除