文头说明:这是一篇不全面不严谨的笔记,不具科普性。
若是以学习git为目的,请移步下列学习资源。
//学习资源:
廖雪峰Git教程:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
Git实用教程(小甲鱼):https://www.bilibili.com/video/av8261658?from=search&seid=4446623912464048884
正文
1.创建版本库
第一步:初建新目录(已有工作目录请跳过)
$ mkdir learngit
$ cd learngit
$ pwd
/Users/michael/learngit
(以创建名为learngit的空目录为例。为什么?直接ctrl+cv方便啊)
//mkdir 创建新目录 //pwd 显示当前目录
第二步:变新目录learngit——>仓库
$ git init
Initialized empty Git repository in /Users/michael/learngit/.git/
此时目录下应出现 .git的目录,若没有,请使用ls -ah 命令
第三步:文件进库
(假设我们现在已经编写好了一个readme.txt文件,现在想把它放进git仓库)
首先,请把readme.txt放在learngit目录下!
然后,使用add和commit命令
$ git add readme.txt
$ git commit -m "wrote a readme file" //"wrote a readme file"是提交说明
[master (root-commit) eaadf4e] wrote a readme file
1 file changed//一个文件被改动, 2 insertions(+)//插入两行内容
create mode 100644 readme.txt
//可add多次而后一次commit全部内容,如下
$ git add file1.txt
$ git add file2.txt file3.txt
$ git commit -m "add 3 files."
2.时光穿梭机
版本回退
git log 查看提交历史,准备回退
git reset --hard commit_id (或HEAD~/HEAD^) 回退至id对应的版本中
git reflog 后悔了?查看命令历史,找寻未来id号
撤销修改
(私以为,这个功能对于既手残又轻微洁癖的Miss he,很友好。。。)
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file
。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>
,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
删除文件
使用rm命令或直接在资源管理器中删除文件后,面临的两个场景:
1.删错了,需要将版本库文件恢复到工作区:
$ git checkout -- test.txt
2.接着把版本库中的文件也删除:
$ git rm test.txt
rm 'test.txt'
$ git commit -m "remove test.txt"
[master d46f35e] remove test.txt
1 file changed, 1 deletion(-)
delete mode 100644 test.txt
嗯,就是,先rm再commit,漂亮。
3.创建合并分支
这一部分,理解过程知道怎么用下面命令就好了吧~
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
4.分支管理
老套路,创建分支——>修改文件——>合并分支——>git log查看状态
//合并分支时,使用--no--ff参数,不会丢失数据,且能显示出修改的痕迹
$ git merge --no-ff -m "描述" 分支名
5.添加远程库
具体教程如下,现阶段学了也用不上,到时候现学现用吧,偷懒ing
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013752340242354807e192f02a44359908df8a5643103a000