为了账号安全,请及时绑定邮箱和手机立即绑定

Git小笔记~

标签:
Git

Terminal指令

认识Git之前首先要介绍几个简单的Terminal指令

Windows MacOS/Linux功能

cd cd切换目录

cd pwd显示目前所在文件夹

dir ls目前文件夹的档案列表

md mkdir创建文件夹

type nul> touch建立档案

copy cp复制档案

move mv移动档案

del rm删除档案

cls clear清除Terminal内容

※注意Git bash操作方式与Mac较相同

示例如下(Windows)

$ cd ..

//回到上一层(salecigarettesonline)

$ cd test

//移动到下一层的test文件夹

$ md test

//建立test文件夹

$ type nul> test.txt

//建立test.txt档案

$ copy test.txt test2.txt

//复制test.txt后建立一档案为test2.txt

$ move test.txt aa\bb.txt

//将test.txt移动至aa文件夹内,并改名为bb.txt

$ del test.txt

//删除test.txt档案

Git初始化

Git关系图

$ git config --global user.name“你的使用者名称”

$ git config --global user.email“你的Email”

//使用Git前必须要先设定使用者与Email才可以使用,我们先在全局设定

$ git config --list

//查看设定

设定完成后开启项目文件夹,输入以下指令

$ git init

//进入项目后输入指令,进行项目git初始化

输入之后会在文件夹内新增一个.git文件夹,版本控管文件都存于此文件夹内

也就是如果删除了.git文件夹后就无法再次复原档案了!

Git小知识

HEAD

目前档案比对的基准,每次commit后皆会前进

master

预设的分支名称

.gitignore

可忽略不必要的档案,于根目录加入此档案,并在里面打入需要忽略的档案

开始使用Git指令

比较常用指令

$ git status

//观看目前文件夹状态

$ git add .

//将所有档案加入暂存区

$ git commit -m“git init”

//将暂存区的档案执行commit,-m后面为commit的内容

$ git commit --amend -m“git init”

//修改最后一次commit的内容

$ git log --all

//查询所有commit纪录,没有加上--all则只显示HEAD之前的commit纪录

以下指令较不常用到

$ git reset index.html

//将index.html取消加入暂存区

$ git add -u

//将有commit过且修改的档案放入暂存区

$ git show HashID

//查看某次commit与它上一版的差异细节(没有输入HashID预设为最后一次commit)

$ git cat-file -p HashID

//查看HashID的内容,HashID至少四码以上

$ git diff

//查看档案差异

git diff使用说明

Git如何还原?

还原总共分为三种,分别是revert、checkout、reset

使用revert

$ git revert HashID -n

//复原commit并自动加一个commit,加上-n则不会自动commit

使用checkout

$ git checkout index.html

//将index.html档案还原至暂存区的状态,暂存区没有则还原至HEAD

使用reset

$ git reset --hard

//将档案还原至HEAD的状态,并清除暂存区

$ git reset HashID --hard

//重设HEAD到某个commit并清除暂存区

$ git reflog

//查看HEAD的移动纪录

$ git reset --mixed

//清除暂存区,但工作目录不变

$ git reset HashID --mixed

//清除暂存区,重设HEAD到某个commit,但工作目录不变

revert、checkout、reset的差异

revert

改变工作目录的档案

HEAD与master维持不动

需要按照顺序还原commit

自动commit

revert -n

改变工作目录的档案

HEAD与master维持不动

不会commit

checkout档案

改变工作目录的档案

HEAD与master维持不动

checkout commit or checkout branch

重设工作目录的档案

HEAD移动至commit

master维持不动

reset --hard

重设工作目录&缓冲区

HEAD与分支移动至commit

reset --mixed

重设暂存区

HEAD与分支移动至commit

reset --soft

HEAD与分支移动至commit

指令工作目录暂存区HEAD分支备注

revert重设重设往前不变新增commit

revert -n重设不变不变不变

checkout档案重设不变不变不变

checkout分支/commit重设不变重设不变

reset --hard重设重设重设重设

reset --mixed不变重设重设重设

reset --soft不变不变重设重设

操控Git分支

$ git branch

//查看所有分支

$ git branch分支名称

//新增分支

$ git branch分支名称-d

//删除分支

$ git checkout分支名称

//将HEAD移动到该分支

$ git checkout -b分支名称

//新增分支并切换HEAD

checkout会将原本分支的异动套用到新分支,若新分支有其他修改导致无法套用,则无法切换分支

$ git log --all --graph

//有线图的log纪录

使用Checkout切换分支有三种情况

正常切换

将档案异动带着一起切换

成功切换至其他分支,但工作目录维持修改的部分

无法切换

修改的档案与分支档案有冲突,解决方法如下:

reset将修改的部分舍弃

commit下次需要时再回来使用档案

stash将档案收藏起来

$ git stash save index

//将档案收藏为index

$ git stash list

//收藏列表

$ git stash pop

//取出最后一个收藏

合并分支

$ git merge dev

//将dev合并到目前分支(使用快进合并)

$ git merge --no-ff dev

//将dev合并到目前分支(不使用快进合并)

快进合并的意思是,只需移动分支即可完成合并,不使用快进合并则会产生一个commit

(merge预设是使用快进合并)

合并档案遇到冲突怎么办?

遇到冲突通常都是因为两个人一起commit同一个部分,此时则须两人一起讨论需如何修改

最后将不必要的部分删除,将档案加入暂存区,并再次commit,然后新增信息或:q离开~

使用rebase让线图变为一条线

假设我们要将dev分支合并到mester,则先切换到dev,然后输入指令

$ git rebase master

同上面,先将不必要的部分删除,将档案加入暂存区,并输入以下指令

$ git rebase --continue

这时分支就合并完成了,并且也变成了一条线拉~

在commit上粘贴标签

$ git tag -a“v4.0”-m“update”

//在目前HEAD上粘贴v4.0的标签,信息为update

$ git tag -d“v4.0”

//删除v4.0标签

$ git cat-file -p“v4.0”

//查看v4.0标签的信息

Git远端操作

$ git init --bare

//建立远端档案库

$ git remote add origin路径

//将本地端的档案库连接至远端

$ git remote show origin

//查看档案库信息

$ git ls-remote路径

//查看远端分支

$ git fetch

//抓取远端commit纪录

$ git merge origin/master

//将本地端合并远端分支

$ git branch -u origin/master master

//将远端的master设定为预设分支

$ git pull

//等于fetch + merge

$ git romote remove origin

//删除远端档案库

$git clone路径文件夹名称

//复制远端数据(shkwkj)

//将分支推送至远端,加上-f可以强制推送
$ git push

$ git clean -f

//把没有版控的档案删除

$ git gc

//清理没有用到的Object

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消