git 命令

bash入门(了解)

bash是许多linux系统默认的shell(命令行工具)。

cmd和powershell是window系统默认的shell(命令行工具)。

二者的功能都一样,通过命令行来操作计算机的功能。

为什么要学习bash

  • 必须使用linux风格的shell来运行git命令

  • 工作过程中,项目都是部署在linux系统中,了解一些常用的bash命令也是有必要的。


# cd 改变目录  (change directory)

cd images  #进入images文件夹

cd ..      #进入上一层目录

cd ~      #进入用户根目录

# tab  自动补全,当我们输命令或者目录很长时,可以使用tab键进行自动补全。

# 按两次tab,会把所有符合要求的内容都列出来。

# pwd 打印当前目录的路径 (print work directory)

pwd

# ls 展示当前目录列表(list)

ls        # 展示当前目录

ls -a      # 展示全部内容,包括隐藏文件

ls -l      # 以列表的形式展示内容

# clear reset清屏

clear  # 清除屏幕内容,滚动条,保留了历史

reset  # 重置,历史记录没了。

# mkdir  创建一个文件夹 (make directory)

mkdir css          # 创建一个css的文件夹

mkdir css img js  # 创建了三个文件夹

# rmdir  删除一个空的文件夹(没啥用)

rmdir img  # 删除文件夹

# touch  创建文件

touch index.html  #创建了一个index.html文件

touch css/index.css # 在css目录下创建idnex.css文件

# rm 删除一个文件获取文件夹

rm index.html # 删除index.html文件

rm js        # 删除空的js文件夹

rm -r css    # 递归删除一个文件夹

# mv 移动文件(move)

mv index.html js            # 将html文件移动到js文件夹中

mv index.html index2.html  # 将index.html重命名为index2.html

# cp 复制文件(cp)

cp index.html index2.html  # 复制index.html文件,命名为index2.html

cp -r css css02            # 如果复制的是文件夹,需要使用-r参数。

# cat 查看文件全部内容

cat index.html

在第一次使用的时候,需要配置你的用户邮箱和用户名称,这两条配置是很重要的,每次提交git代码都会引用这两条信息,记录了谁提交了代码,会永久的记录在历史记录中。


# git config  user.name 你的目标用户名

# git config  user.email 你的目标邮箱名

# 使用--global参数,配置全局的用户名和邮箱,只需要配置一次即可。

git config  --global user.name hucc

git config  --global user.email [email protected]

# 查看配置信息

git config --list

  1. 初始化git仓库git init

  2. 查看当前git仓库的状态git status

  3. 将文件添加到git的暂存区git add 文件名

  4. 将文件由暂存区提交到仓库区git commit -m '提交说明'

  5. 查看提交日子git log


# 要对某个项目使用git进行管理,需要使用git init命令初始化git仓库

# 会在当前目录生成一个隐藏文件夹 .git  不要去修改这个文件夹下的任意东西。

git init

# 查看git文件的状态 ,如果此时新建一个文件,那么这个文件是没有被追踪的,说白了git还没有管理这个新建的文件

git status

# 告诉git开始对index.html文件进行追踪, git会在暂存区中存储这个文件

git add index.html

# 让文件由暂存区提交到仓库区。此时文件才真正的被git管理了。

# 如果提交日志乱码,右键-->options-->Text-->将编码改成utf-8

git commit -m '第一次提交'

# 查看提交日志

git log

git命令详解

git add(重点)

  • 作用:让git追踪一个新的文件,并且将文件由 工作区 添加到 暂存区,暂存文件

  • 命令:git add 文件名/目录名

    • 例如: git add index.html
  • git add --all 或者 git add -A 获取git add .(简写) 添加所有文件

  • git add a.txt b.txt 同时添加两个文件

  • git add *.js 添加当前目录下的所有js文件

  • git add css/添加css目录下所有的文件

git checkout 文件名

  • 作用:暂存区的内容恢复到工作区。

  • git checkout 1.txt 将暂存区中1.txt文件恢复到工作区

git commit(重点)

  • 作用:将文件由 暂存区 添加到 仓库区,生成版本号(历史记录,以后可以回退到某一个版本号)

  • git commit -m "提交说明"

git status

  • 作用:查看文件的状态

  • 命令:git status

  • 命令:git stauts -s 简化日志输出格式

git log

  • 作用:查看提交日志

  • git log 只能查看当前head以及以前的日志

  • git log --oneline 简洁的日志信息,如果提交的日志非常多了

  • git reflog 查看所有的提交变更日志

git reset

  • 作用:版本回退,将代码恢复到已经提交的某一个版本中。

  • git reset --hard 版本号 将代码回退到某个指定的版本(版本号只要有前几位即可)

  • git reset --hard head~1将版本回退到上一次提交

    • ~1:上一次提交

    • ~2:上上次提交

    • ~0:当前提交

git的三个区

工作区、暂存区、本地仓库区

工作区:我们书写代码的地方,工作的目录就叫工作区。

暂存区:使用add命令,在.git目录中的一个索引文件,记录修改的文件

本地仓库区:将保存在暂存区域的内容永久转储到 Git 仓库中,生成版本号。生成版本号之后,就可以任何的回退到某一个具体的版本。

git忽视文件

在仓库中,有些文件是不想被git管理的,比如数据的配置密码、写代码的一些思路等。git可以通过配置从而达到忽视掉一些文件,这样这些文件就可以不用提交了。

  • 在仓库的根目录创建一个.gitignore的文件,文件名是固定的。

  • 将不需要被git管理的文件路径添加到.gitignore


# 忽视idea.txt文件

idea.txt

# 忽视.gitignore文件

.gitignore

# 忽视css下的index.js文件

css/index.js

# 忽视css下的所有的js文件

css/*.js

# 忽视css下的所有文件

css/*.*

# 忽视css文件夹

css

创建分支

  • git branch 分支名称创建分支,分支中的代码,在创建时与当前分支的内容完全相同。

  • git在第一次提交时,就有了一个叫master的主分支。

查看分支

  • git branch可以查看所有的分支,

  • 在当前分支的前面会有一个*

切换分支

  • git checkout 分支名称切换分支 HEAD指针指向了另一个分支

  • 在当前分支的任何操作,都不会影响到其他的分支,除非进行了分支合并。

  • 切换分支之前,必须保证代码已经提交了

创建并切换分支

  • git checkout -b 分支名称 创建并切换分支

  • 切换分支会做两件事情

    • 把head指针指向当前的分支

    • 将工作区的文件变成当前分支最新的内容。

删除分支

  • git branch -d 分支名称 可以删除分支

  • 注意:不能在当前分支删除当前分支,需要切换到其他分支才能删除。

  • 注意:master分支是可以删除的,但是不推荐那么做。

合并分支

  • git merge 分支名称 将其他分支的内容合并到当前分支。

  • master分支中执行git merge devdev分支中的代码合并到master分支

  • 分支合并

git合并冲突

  • 对于同一个文件,如果有多个分支需要合并时,容易出现冲突。

  • 合并分支时,如果出现冲突,只能手动处理,再次提交,一般的作法,把自己的代码放到冲突代码的后面即可。

远程仓库

所有的程序员都可以通过远程仓库来进行版本的共享,达到所有人的代码一致的效果。

远程仓库相关的命令

git push

  • 作用:将本地仓库中代码提交到远程仓库

  • git push 仓库地址 master 在代码提交到远程仓库,注意master分支必须写,不能省略

  • 例子:git push [email protected]:hucongcong/test.git master 如果第一次使用,需要填写github的用户名和密码

  • 在git push之前,先git pull: 保证先把远程仓库代码先拉取到本地

git pull

  • 作用:将远程的代码下载到本地

  • git pull 代码地址 master 将远程的代码中master分支下载到本地

  • 通常在push前,需要先pull一次。

git clone

  • 作用:克隆远程仓库的代码到本地

  • git clone [远程仓库地址]

  • git clone git://github.com/schacon/test.git会在本地新建一个test文件夹,在test中包含了一个.git目录,用于保存所有的版本记录,同时test文件中还有最新的代码,你可以直接进行后续的开发和使用。

  • git克隆默认会使用远程仓库的项目名字,也可以自己指定。需要是使用以下命令:git clone [远程仓库地址] [本地项目名]

git remote

每次push和pull操作都需要带上远程仓库的地址,非常的麻烦,我们可以给仓库地址设置一个别名

  • git remote add 仓库别名 仓库地址 使用仓库别名替代仓库地址。仓库别名相当于一个js变量,仓库地址就是对应的值。

    • git remote add hucc [email protected]:hucongcong/test.git 设置了一个hucc的仓库别名,以后push和pull都可以不用仓库地址,而用hucc,origin
  • git remote remove hucc 删除hucc这个仓库别名。

  • git remote 查看所有的仓库别名

  • 如果使用了git clone命令从远程仓库获取下来的,那么这个本地仓库会自动添加一个 origin的远程地址,指向的就是克隆的远程地址。

你可能感兴趣的:(git 命令)