这是我学习廖雪峰老师的Git教程的笔记。
首先从Git官方网站下载Git,安装完成后打开Git Bash。下面的指令都是在Git Bash中输入哒~
1.mkdir
在本地创建版本库mygit,pwd
显示当前所在目录。
$ mkdir mygit
$ cd mygit
$ pwd
2.初始化版本库
$ git init
Initialized empty Git repository in C:/Users/hp/mygit/.git/
3.把文件readme.txt添加到版本库分两步:
第一步用git add
把文件从工作目录添加到暂存库stage,
第二步用git commit -m"<message>"
把暂存库里的所有文件提交到当前分支。-m"<message>"
是我们对这次提交的注释。
$ git add readme.txt
$ git commit -m"added readme.txt"
[master (root-commit) 346877c] added readme.txt
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 readme.txt
4.用git status
查看版本库现在的状态。
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: readme.txt
no changes added to commit (use "git add" and/or "git commit -a")
git很nice地提醒我们:文件被修改啦,但是修改没有提交到版本库。
如果我们用git add
文件添加到了暂存库,但忘记提交了,用git status
查看时也会有提示:
$ git add readme.txt
$ git status
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: readme.txt
当我们用git commit
提交了暂存库里的文件,再用git status
查看时git会夸我们一下:工作目录很干净哦~
$ git commit -m"added I love changes"
[master c5fd754] added I love changes
1 file changed, 2 insertions(+)
$ git status
On branch master
nothing to commit, working tree clean
5.git diff HEAD -- readme.txt
能够比较文件readme.txt工作目录和版本库最新版本之间的区别。有区别说明
$ git diff HEAD -- readme.txt
diff --git a/readme.txt b/readme.txt
index 40a7302..6baa033 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,2 +1,3 @@
I am a changed readme text.
-I love changes.
\ No newline at end of file
+I love changes.
+I am changed again.
\ No newline at end of file
6.git log
可以查看以往的文件提交日志。用git log --pretty=oneline
可以看简洁版的文件提交日志哦~
$ git log --pretty=oneline
c5fd754868e6086bef64dcb85cacb0273ea07ec7 (HEAD -> master) added I love changes
346877c05ed0c01b79e2b2626f9ac21e766741c3 added readme.txt
日志里的长串乱码就是版本号commit id
啦~
7.版本回退用git reset --hard HEAD^
可以回退到上一个版本,HEAD
代表当前版本,HEAD^^
代表上上个版本,HEAD~6
代表倒数第6个版本。
$ git reset --hard HEAD^
HEAD is now at 346877c added readme.txt
8.查看当前版本中某文件的内容用$ cat readme.txt
9.变更到某个指定版本用git reset --hard c5fd
,其中c5fd
是我们指定版本的版本号前四位。
$ git reset --hard c5fd
HEAD is now at c5fd754 added I love changes
10.git reflog
可以查看之前版本变更的历史。
$ git reflog
c5fd754 (HEAD -> master) HEAD@{0}: reset: moving to c5fd
346877c HEAD@{1}: reset: moving to HEAD^
c5fd754 (HEAD -> master) HEAD@{2}: commit: added I love changes
346877c HEAD@{3}: commit (initial): added readme.txt
git reset HEAD readme.txt
可以撤销暂存区还没提交的对文件的修改。
$ git reset HEAD readme.txt
Unstaged changes after reset:
M readme.txt
12.git checkout -- readme.txt
可以用版本库里的版本替换工作区的版本,能够使工作区的文件回到上一次git commit
时的版本。
13.rm LICENSE
可以删除工作区的文件,而git rm LICENSE
可以删除版本库里的文件。
- 在使用GitHub前,需要先到电脑用户主目录里找到.ssh文件夹,里面有
id_rsa
和id_rsa.pub
两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,id_rsa.pub是公钥。
也可以用$ ssh-keygen -t rsa -C "myemail@example.com"
SSH Keys。
15.关联GitHub上的远程库可以用git remote add origin git@github.com: YHZSS/mygit.git
16.用git push -u origin master
可以第一次把本地库里所有的内容都推送到远程库里。之后每一次推送用git push origin master
就可以啦。
17.把远程库克隆到本地库用git clone git@github.com: YHZSS/mygit.git
18.创建新分支dev用git branch dev
,创建并切换到新的分支用git switch -c dev
$ git switch -c dev
Switched to a new branch 'dev'
- 切换到
master
分支用git switch master
$ git switch master
Switched to branch 'master'
- 查看现有的分支用
git branch
前面有*
的就是当前分支啦。
$ git branch
dev
* master
21.删除分支用git branch -d dev