Git命令学习

基本命令

1)、cd :改变目录

2)、cd.. 回退到上一级一个目录,直接cd进入默认目录

3)、pwd :显示当前所在的目录路径

4)、ls: 列出当前目录的所有文件

5)、touch:新建一个文件 如touch index.js 就会在当前目录下新建一个index.js文件

6)、rm:删除一个文件,rm index.js 就会把index.js文件删除

7)、mkdir:新建一个目录,就是新建一个文件夹

8)、rm -r: 删除一个文件夹,rm -r src 删除src目录

9)、mv: 移动文件

10)、rest 重新初始化终端/清屏

11)、clear 清屏

12)、history 查看命令历史

13)、help 帮助

14)、exit 退出

15)、# 标示注释

设置用户名与邮箱

当你安装Git后首先需要做的事情是设置你的用户名称和email地址。这是非常重要的,因为每次Git提交都会使用该信息。它被永远的嵌入到你的提交中:

 $ git config --global user.name "zhuyu"  # 名称
 $ git config --global user.email "1597457236@qq.com"  # 邮箱

Git基本理论(核心)

Git本地有三个工作区域:工作目录(Working Directory)、暂存区(Stage/Index)、资源库(Repository或Git Directory)。如果加上远程的仓库就可以分为四个工作区域。

Workspace : 工作区,就是你平时存放代码的地方

Index/Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息。

Repository:仓库区(或本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本。

Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换。

Git项目搭建

主要记住下面几个命令:

 git add
 git commit
 git push

本地仓库搭建

创建本地仓库的方法有两种方式:一种是创建全新的仓库,另一种是克隆远程仓库。

1、创建全新的仓库,需要Git管理的项目的根目录执行:

 # 在当前跟目录新建一个Git代码库
 $ git init
 Initialized empty Git repository in F:/Git/GitCode/.git/

克隆远程的仓库

1、另一种方式是克隆远程目录,是将远程服务器上的仓库完全镜像一份至本地!

 # 克隆一个项目和它的整个代码历史(版本信息)
 $ git clone [url]

GIT文件操作

文件4种状态

版本控制就是对文件的版本控制,要对文件进行修改,提交等操作,首先要知道文件当前在什么状态,不然可能提交了现在还不想提交的文件,或者要提交的文件美提交上。

1) Untracked:未跟踪,此文件在文件夹中,但并没有加入到git库中,不参与版本控制,通过git add 状态变为 staged

2) Unmodify:文件已经入库,未修改,即版本库中的文件快照内容与文件夹中完全一致,这种文件有两种去处,如果它被修改,而变为Modified,如果使用git rm 移出版本库,则成为Untracked 文件。

3)Modified: 文件已修改,仅仅是修改,并没有进行其他操作,这个文件也有两个去处,通过git add 可进入暂存 staged 状态,使用git checked 则丢弃修改过,返回到unmodify 状态,这个git checkout 即从库中取出文件,覆盖当前修改。

4)Staged :暂存状态,执行git commit 则修改同步到库中,这时库中的文件和本地文件又变为一致,文件为Unmodify 状态,执行git reset HEAD filename 取消暂存,文件状态为Modified

查看文件状态

上面说文件有4种状态,通过如下命令可以查看到文件的状态:

 # 查看指定文件状态
   git status [filename]
 # 查看所有文件状态
 git status
 # git add .               添加所有文件到暂存区
 # git commit -m "消息内容"   提交暂存区中的内容到本地仓库 -m 提交信息

忽略文件

有些时候我们不想把某些文件纳入到版本控制中,比如数据库文件,临时文件,设计文件等

 # 为注释
 *.txt      # 忽略所有 .txt结尾的文件,这样的话上传就不会被选中!
 !lib.txt   # 但lib.txt除外
 /temp      # 仅忽略项目根目录下TODO文件,不包括其他目录temp
 bulid/     # 忽略bulid/目录下的所有文件
 doc/*.txt  # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt

使用码云

github 是有墙的,比较慢,在国内的话,我们一般使用 gitee ,公司中有时候会搭建自己的 gitlab服务器