Git学习笔记

Git学习笔记 2019.8.13

Git安装及Git镜像链接

官方下载链接:https://git-scm.com/downloads
由于官网下载网址在墙外,下载速度非常慢,所以这里给一个github的镜像链接:Windows环境Git下载镜像:https://github.com/waylau/git-for-win
直接选择自己的系统进行下载即可,其中win下会自动识别系统位宽等信息提供下载文件,国内下载速度依然足够,问价也不大,分分钟下完。
安装即可。
安装完,打开Git Bash.exe,用git version命令确定是否安装成功。
安装成功此处返回版本号:git version 2.22.0.windows.1(示例)

基础配置

git config --global user.name ‘your_name’

git config --global user.email ‘your_email@xxx.com’

为了协同工作方便,每个git需要定义全局的user name和user email。
具体指令:

git config --global user.name 'your_name'
git config --global user.email 'your_email@xxx.com'

其中,–global是确定指令的作用域,这个是全局,还有–local,只作用于当前版本库。还有–system,不常用。
这两条没有返回,通常即意味着设置完毕。

git config --list --global

返回值为:

user.name=your_name
user.email=your_email@xxx.com

新建版本库

git init

首先制定路径到新工程目录下,最好是空文件夹。语句是:

cd E:/nuts/learn_git

这里需要注意的是,win的路径分隔为‘\’,git的分隔为‘/’。
之后在路径下新建版本库:

git init

新建成功,我们可以看下这个路径下的变化:

ls -al
drwxr-xr-x 1 Administrator 197121  0  812 17:48 ./
drwxr-xr-x 1 Administrator 197121  0  812 17:40 ../
drwxr-xr-x 1 Administrator 197121  0  812 17:40 .git/

多了一个隐藏文件夹git,没有其他变化。

新建文件交版本库管理

git add

git commit -m’text’

在learn_git目录下新建一个文件,这里就新建一个readme.txt文件。
之后使用如下命令将文件加入版本库管理:

git add readme.txt
git commit -m'Add readme'

返回值,添加了一个新文件。

[master (root-commit) 83dcbec] add readme
 1 file changed, 2 insertions(+)
 create mode 100644 readme.txt

查看目前状态

git status

对已经添加的版本库的文件进行修改后,使用git status来看目前版本库的状态。

git status
#以下为返回值
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   readme.txt

no changes added to commit (use "git add" and/or "git commit -a")

返回值提示有一个文件被修改,但是没有commit。

查看具体修改内容

git diff

为了查看具体修改内容,可以使用git diff命令,这个命令只能查看文本类型文件,包括大部分代码文件的具体修改内容,.doc等是不可查看的。

git diff
#以下为返回值
diff --git a/readme.txt b/readme.txt
index d8036c1..3f49ea3 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,2 +1,3 @@
 Git is a version control system.
-Git is free software.
\ No newline at end of file
+Git is free software.
+我就是试试。
\ No newline at end of file

提交修改

git add file.fmt

git commit -m’text’

提交修改的方法与提交新文件的方法完全相同。

查看日志

git log

git log --all --oneline --graph -n4

经过多次修改后,为了查看历史修改内容,可以使用git log命令。

git log
#以下为返回值
commit 6c9a8c144432e28d57e0d9af7ba9a3bc0a63b0f4 (HEAD -> master)
Author: ZiHuan <wangx_work@126.com>
Date:   Tue Aug 13 10:05:37 2019 +0800

    add chinese to readme

commit 83dcbec171a5d38a8775309924409a3b95df628a
Author: ZiHuan <wangx_work@126.com>
Date:   Tue Aug 13 08:58:09 2019 +0800

    add readme

可以看到返回了两个版本,一个是add readme,一个是add Chinese to readme。每次返回值都包含有:commit ID,作者,时间,以及备注。
为了减少返回值内容,可以使用 git log --pretty=oneline命令。或者git log --oneline。
可以控制显示数量git log -n3,就显示最近的三个版本。

git log --pretty=oneline
6c9a8c144432e28d57e0d9af7ba9a3bc0a63b0f4 (HEAD -> master) add chinese to readme
83dcbec171a5d38a8775309924409a3b95df628a add readme
git log --oneline
00b5c5f (HEAD -> master) Add FWM.m
6c9a8c1 add chinese to readme
83dcbec add readme

回退版本

git reset HEAD^

git reset HEAD~5

git reset ID

跳转到制定版本,git提供了两种机制,一种是git reset HEAD^,跳转到上一个状态,HEAD表示当前状态,加一个三角表示上一个版本,加多个三角表示上多个版本,具体也可以用~n来表示。
同时,可以使用reset 到制定ID制定跳转目标。其中,ID可以不写全,当版本不多的时候只需要写开头的几个数字就可以了。

查询历史操作

git reflog

可以看到版本的历史变化和ID,可以进行制定跳转。

git reflog
6c9a8c1 (HEAD -> master) HEAD@{0}: reset: moving to 6c9a
83dcbec HEAD@{1}: reset: moving to HEAD^
6c9a8c1 (HEAD -> master) HEAD@{2}: commit: add chinese to readme
83dcbec HEAD@{3}: commit (initial): add readme

撤销修改

git checkout – file.fmt

git reset HEAD file.fmt

撤销修改分为两种,一种为撤销工作区的修改内容,使用git checkout --file.fmt,注意,file前有空格。
其实,checkout操作使用版本库中的文件替换工作区文件。
另一种是撤销已经add进暂存区的修改内容,使用git reset HEAD file.fmt。这样暂存区的内容就会被退回到工作区,就又可以使用checkout进行撤销了。

删除文件

git rm file.fmt

从版本库中删除指定文件的方法就是用rm,如果误删了,就回退到制定版本,再从版本库中checkout到工作区就可以了。

以上应该就是git本地库管理常用的指令了,以后再遇到新的,我再进一步更新。

重命名文件

git mv file_old.fmt file_new.fmt

直接对工作区文件名进行修改,这种方式比较方便。
也可以在文件管理器中进行修改,那样的话需要删除rm原来的文件,还需要添加add重命名后的文件。但是这样比较复杂。
上述重命名后,直接commit提交到版本库就行了。

新建分支

git branch name

创建dev分支
git chechout -b dev

git checkout name

git checkout -b name

新建分支并命名,然后跳转到这个分支。其中第三句是简便操作,一次创建并跳转。

合并分支

git merge name

合并分支到当前活动的分支。其中,如果在分支中和当前分支都修改了同一个文件的话,会产生冲突,需要手动处理这些冲突。

修改版本messege

git commit --amend

git rebase -i ID

其中用amend修改最新的messege,用rebase修改之前的历史messege,而且,这个里边几乎能修改所有信息。修改messege需要用reword命令,替换弹窗内原来的pick命令。

参考链接

廖雪峰Git教程:https://www.liaoxuefeng.com/wiki/896043488029600

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值