新增 初始化 Repository
mkdir learn-git
cd learn-git
git init
这时会在项目中创建一个 .git
文件夹 在 类 unix系统中 .
为前缀的文件是隐藏文件
把文件交给 Git
$ git status
On branch main
No commits yet
nothing to commit (create/copy files and use "git add" to track)
新建一个文件
$ echo "Hello Git" > hello.html
$ git status
On branch main
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
hello.html
nothing added to commit but untracked files present (use "git add" to track)
交给 Git 管理
$ git add hello.html
On branch main
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: hello.html
其他的 add 用法
$ git add *.html
$ git add --all
如果修改了内容会怎么样
$ echo "Hello Git1" > hello.html
$ git status
On branch main
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: hello.html
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: hello.html
Git . 和 Git --all的区别
在 Git 2.X 版本后就一样了.之前--all
会添加删除的文件 而 .
不会
将内容提交到存档中
$ git commit -m 'init commit'
工作区 暂存区与储存库
工作区
暂存库
git add .
存储库
git commit -m 'xx'
简化以上两个流程 git commit -a -m 'xxx'
查看记录
git log
git log --oneline --graph
# 筛选
git log --oneline --author="作者"
git log --oneline --grep="关键字"
git log -S "关键字"
git log --oneline --since="9am" --until="12am"
git log --oneline --since="9am" --until="12am" --after="2021-01"
删除文件或改变名称
删除文件
# 第一种方法 当普通修改
git rm xxx.html
git add xxx.html
# 第二种 使用 Git 进行删除
git rm xxx.html
修改名称
# 第一种
mv xxx.html abc.html
git add abc.html
# 第二种
git mv xxx.html abc.html
修改 Commit 记录
有 4 种方案
删除整个
Git
使用
git rebase
命令修改历史记录使用
Commit
用 git reset命令删除,整理后重新Commit
使用
--amend
参数改动最后一次 Commit
这里先说第四个 改动最后一次 Commit
git commit --amend -m 'Hello'
追加文件到最近的一次 Commit
有 2种方案
使用 git reset 命令把最后一次
Commit
删除,假如新文件后再重新Commit
使用
--amend
进行 Commit
echo "hello world git" > hello1.html
git add hello1.html
git commit --amend --no-edit
新增目录
默认情况下假如没有文件的文件夹 git
是无法识别到的,所以需要新增一个文件.
mkdir images
cd images
touch .keep
git add .keep
git commit -m 'add new images dir'
忽略一些文件
只需要将这些文件放入到 .gitignore
https://github.com/github/gitignore 这里有常见的忽略地址
echo "hello2.html" > .gitignore
查看特定文件的 Commit 记录
git log hello1.html #查看文件提交记录
git log hello1.html -p #可以查看改动内容
查看代码谁写的
git blame hello1.html # 查看这个代码谁写的
git blame -L 5,10 hello1.html # 查看这个代码谁写的 并指定行
不小心把文件删除了
rm hello.html
git checkout hello.html # 挽回一个文件
git checkout . # 挽回全部文件
拆掉 Commit 重做
^
代表回退几个 Commit
git log --oneline
git reset ccaa122^ #
git reset master^
reset 有 3 个模式
mixed 默认 Commit出的内容会被放在工作区
soft Commit出的内容会被放在暂存区
hard 这个模式下无论是工作目录还是暂存区文件都会被删除
评论