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 111111@qq.com

# 查看配置信息

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 git@github.com: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 git@github.com:hucongcong/test.git 设置了一个hucc的仓库别名,以后push和pull都可以不用仓库地址,而用hucc,origin
  • git remote remove hucc 删除hucc这个仓库别名。

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

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容

  • 1. 安装 Github 查看是否安装git: $ git config --global user.name "...
    Albert_Sun阅读 13,627评论 9 163
  • git常用命令 GIT常用命令备忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章阅读 8,449评论 1 26
  • 本片内容转自CSDN http://blog.csdn.net/ithomer/article/details/7...
    五娃儿阅读 4,911评论 2 88
  • 以下内容是我在学习和研究Git时,对Git操作的特性、重点和注意事项的提取、精练和总结,可以做为Git操作的字典,...
    科研者阅读 4,080评论 4 50
  • 冬日的周末早晨,公交车上并没有预期的冷清,看来大家的周末都没有想象中悠闲:睡到自然醒,伸个长长的懒腰,做顿营养美味...
    燕子_70a4阅读 231评论 0 0