git - 1 ( 环境安装、基础操作、工作目录 add + commit )

1. 安装环境

(1)右边下载
https://git-scm.com/

(2)下载安装完成
https://ithelp.ithome.com.tw/upload/images/20211226/201376842MzEMHum3w.png
Windows用Git bash

(3)测试看看有无安装成功
CND > git version
https://ithelp.ithome.com.tw/upload/images/20211226/20137684ayrQDGb1JI.png


2. Windows - 命令提示字元

Git bash

(1) 移动路径

$ cd c:
$ cd test (进入资料夹)
$ cd test/css (进入资料夹)
可以直接拖曳资料夹放cd 後

(2) 观看资料夹内容

$ ls

(3) 回上一层( PS:是两个.. 不是一个 . )

$ cd ..

(4) 新增资料夹

$ mkdir 资料夹名称

(5) 新增档案

$ touch index.html

使用Git为什麽不直接在命令提示字元下指令就好而要开启git bash呢?
两者其实是差不多的,git bash 有加上一些 linux 命令跟 git 一些内建指令
但实际上 98% 以上 git 功能都有,可以依照自己想用的来投入哩 :D


3. Mac - 命令提示字元

https://w3c.hexschool.com/git/fd6f6be
输入关键字「终端机」或「terminal」,寻找到对应软件後,按下 Enter
复制此指令「git --version」,并在终端机点选滑鼠右键,选择「Paste」贴上後,按 Enter

MAC 的终端机不论你是用预设或者是 iTerm2 ,他都没有预设高亮效果,
这里则是使用 Oh My Zsh ,这里也提供一个相关操作教学连结
https://gist.github.com/kevin-smets/8568070

https://ithelp.ithome.com.tw/upload/images/20211226/20137684cWFROf1GXX.png

(1) 移动路径

cd c:
cd d:
cd test (进入资料夹)
cd test/css (进入资料夹)

(2) 观看资料夹内容

ls

(3) 回上一层( PS:是两个.. 不是一个 . )

cd ..

(4) 新增资料夹

mkdir 资料夹名称

(5) 新增档案

touch index.html

( 同windows 只差在$ [$电脑自动生成的,不用自己输入] )


4. Git 初始环境设定

Sourcetree
一套提供不会下指令的人使用Git的介面(白话文XD)
https://ithelp.ithome.com.tw/articles/10209045

Sourcetree内可见版本控制,及编辑者资料
https://ithelp.ithome.com.tw/upload/images/20211226/20137684n9ylEeS44p.png

(1)查看git内容

git config --list
https://ithelp.ithome.com.tw/upload/images/20211226/20137684EP1Hm99Fxm.png

(1)编辑git内编辑者email资料

git config --global user.email "你的mail"

(1)编辑git内编辑者名字

git config --global user.name "你的名字"


5. git的大概流程图~

https://ithelp.ithome.com.tw/upload/images/20211226/20137684o0YLLEeByj.png


6. git init - 安装数据库(本地数据库)

安装git 监控版本控制(master)
安装完後会有个.git的隐藏资料夹

git init

https://ithelp.ithome.com.tw/upload/images/20211226/20137684pXENpJWVhA.png


7. 工作目录、加入索引(add)、提交(commit)版本流程

https://ithelp.ithome.com.tw/upload/images/20211226/20137684E3H0cMwyTD.png

(1) 安装数据库
进去新建立的专案内安装数据库(.git)

git init

(2) 工作目录内新增or编辑资料後,加入索引

git add . ( . = 全部档案 )
git add a.txt (个别)

(2-1) 删除索引 (尚未commit)

git reset HEAD (全部所以删除)
git reset HEAD "档案名称"
git rm --cached "档案名称"

(3) 观看哪些已加入索引(检查状态)

git status

https://ithelp.ithome.com.tw/upload/images/20211226/20137684cD6fwEjUDI.png
没有加入索引的档案会显示红字(资料夹内有资料才会显示)

Q:
新增索引後出现No commits yet,後面commit跟查询纪录都可以使用,
是不是MAC跟Windows的git控制器会显示不同?

A:
那句话意思只是和你说你目前没有任何 commit 记录提醒而已,
不是错误讯息哩,请不用担心 :D

(4) 提交(commit)更新

git commit -m '输入想增加的注解'

https://ithelp.ithome.com.tw/upload/images/20211226/20137684xviLwMwmaG.png

(5) 查询纪录
用来查看commit纪录
mac 'q' 离开画面

git log

(6) 查看有无编辑

git diff
git diff "file"(查看各别档案)

结论:
a. 资料提交(commit)後,再编辑资料,可被检查出被编辑(modified)了

git status
https://ithelp.ithome.com.tw/upload/images/20211226/20137684yxq7zGGCvW.png

b. 被索引(add)的资料提交(commit)後,被索引(add)的资料会被清空~~

git status

差异
https://ithelp.ithome.com.tw/upload/images/20211226/20137684jZzSwZunqU.png


8. gitignore - 忽略档案

使用时机:不想要受到版本控制的档案(暂存档、帐号密码等)

(1) 建立不要进版控的资料

touch .gitignore

(2) 内文新增欲忽略的档案
ex:
index3.html
*.html ( 副档名html的全部忽略 )
css/ ( css资料夹内资料全部忽略 )

(3) 此时新增index3.html档案,并检查(git status)尚未索引(add)的档案
不会显示.gitignore 内 不进版控的资料

git status

网路上各大神留下可以gitignore的档案
https://github.com/github/gitignore


9. 还原档案 *********************************************** 好用

(1) 恢复 单一档案 到最新 commit 状态

git checkout "档案名称"

(2) 还原工作目录与索引(全部),会与最後一次 commit 状态一样
未commit的资料会消失

git reset --hard

还原档案 vs. 取消索引(尚未commit)

git reset HEAD (全部所以删除)
git reset HEAD "档案名称"
git rm --cached "档案名称"


10.指令大全

参考:
https://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html
https://backlog.com/git-tutorial/tw/reference/

基础设定

查询版本
git version
查询设定列表
git config --list
输入姓名
git config --global user.name "你的名字"
输入email
git config --global user.email "你的email"

新增本地/远端数据库

在本地资料夹新增数据库
git init
复制远端数据库
git clone 远端数据库网址

增加/删除档案

增加档案进入索引
git add 档案名称
增加全部档案进入索引
git add .
查询状态
git status
显示历史纪录
git log
将索引提交到数据库
git commit -m '更新讯息'

还原指令

还原工作目录与索引,会跟最後一次 commit 保持一样
git reset --hard
全部档案取消索引
git reset HEAD
单一档案取消索引
git reset HEAD 档案名称
恢复单一档案到最新 commit 状态
git checkout 档案名称
删除最近一次 commit
git reset --hard HEAD^
上面语法如果删除错了可以再用此语法还原
git reset --hard ORIG_HEAD
删除最近一次 commit,但保留异动内容
git reset --soft HEAD^
commit 後发现有几个档案忘了加入进去,想要补内容进去时
git commit --amend

分支

显示所有本地分支
git branch
新增分支
git branch 分支名称
切换分支
git checkout 分支名称
合并指定分支到目前的分支
git merge 分支名称
删除分支
git branch -d 分支名称

远端数据库操作

复制远端数据库
git clone 远端数据库网址
查询远端数据库
git remote
将本地分支推送到远端分支
git push 远端数据库名称 远端分支名称
将远端分支拉下来与本地分支进行合并
git pull

标签

查询标签
git tag
查询详细标签
git tag -n
删除标签
git tag -d 标签名称
新增轻量标签
git tag 标签名称
新增标示标签
git tag -am "备注内容" 标签名称

暂存

暂时储存当前目录
git stash
浏览 stash 列表
git stash list
还原暂存
git stash pop
清除最新暂存
git stash drop
清除全部暂存
git stash clear


<<:  笔记-多媒体简介

>>:  笔记-Multimedia Data Representations

Leetcode: 100. Same Tree

有两个二元树,怎麽检查两个树是不是一样的。 思路 一路Traversal下去 程序码 class S...

Android学习笔记30

昨天做完了验证码,那今天就把他加入到帐号密码之中 首先要先建立一个imageview来存放验证码,并...

Day 28 | AI & 深度学习的应用

剩下几天的时间,要再分享其它实作内容似乎有些困难,那麽大家轻松一点,今天就来谈谈我们所学这些技术的应...

Day7 开始使用Git

大家好我是乌木白,今天来和大家介绍如何使用Git,今天的内容会稍微多一点,请大家要多复习喔!! 全...

Day23 X WebAssembly

也许你早就听过 WebAssembly 这个词,传说中它可以让 C, C++, Rust 等系统语...