x一次性删除直接会保存暂存区 git rm = rm -rf + git add
1.当commit之后就可以再历史记录查看其文件或者内容
git ls-files --with-tree=commitid^
2.查看内容
git cat-file -p commitid^:文件名 以后也可以通过git log -p 等命令查看
jagent@ubuntu:~/xin/mytest$ git rm 1.txt
rm '1.txt'
jagent@ubuntu:~/xin/mytest$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
deleted: 1.txt
jagent@ubuntu:~/xin/mytest$ git commit
[master 39afd6e] TicketNo:DTS2020062200775 Description:ci test Team:ETCD1_CI Feature or Bugfix:Feature Binary Source:No PrivateCode(Yes/No):No
1 file changed, 0 insertions(+), 0 deletions(-)
delete mode 100644 1.txt
jagent@ubuntu:~/xin/mytest$ git log --oneline
39afd6e TicketNo:DTS2020062200775 Description:ci test Team:ETCD1_CI Feature or Bugfix:Feature Binary Source:No PrivateCode(Yes/No):No
6c8826b TicketNo:DTS2020062200775 Description:ci test Team:ETCD1_CI Feature or Bugfix:Feature Binary Source:No PrivateCode(Yes/No):No
989c771 1
4302e9b TicketNo:DTS2020062200775 Description:ci test Team:ETCD1_CI Feature or Bugfix:Feature Binary Source:No PrivateCode(Yes/No):No
fa2e467 patch 3
9f574c8 patch 2
3d4d66d patch 1
7c4368e begin
jagent@ubuntu:~/xin/mytest$ git ls-files --with-tree=39afd6e^
1.txt
2.txt
3.txt
README.md
ddd/ccc
jagent@ubuntu:~/xin/mytest$ git cat-file -p 39afd6ee^:1.txt
jagent@ubuntu:~/xin/mytest$(PS:1.txt内没有内容)
3.可以通过git add -u 快速标记删除
git add -u 文件 主要作用是将本地有修改或者删除的文件标记到暂存区
4.移动操作
git mv = mv ;git add
5.显示版本号
git describe
git log --oneline --decorate -4
6.git add -i选择性添加
7.打tag
git tag -m "标题"
8.文件忽略
.gitignore(共享式忽略,版本库所有都有影响)
.git/info/excluede来设置文件忽略(独享式忽略,针对于本地)
配置git配置变量core.excludesfile指定一个忽略文件,忽略本地版本库
8.1 git忽略语法:
忽略文件中的空行或以#开始的行
支持通配符
前面/表示忽略此目录下的文件,并非子目录文件,例如/TODO只忽略/TODO下的文件并不忽略/TODO下子目录里的文件
!代表不忽略此文件或目录
后面/表示忽略目录下的文件 例如build/忽略此目录下的文件 doc/*.txt 忽略目录下的*.txt但是不忽略 /doc/server/arch.txt
文件归档
此命令归档不会把.git .gitignore,临时文件等归档进去,指挥归档工作区的文件
基于最新提交建立归档文件latest.zip
git archive -o latest.zip HEA(commitid)
基于最新提交建立归档文件partial.tar只将目录src和doc建立当归档partial.tar中
git archive -o partial.tar HEAD(commitid) src doc
基于tags里程碑v1.0建立归档,并且未归档中的文件添加目录前缀1.0.
git archive --format=tar --prefix=1.0/ v1.0 |gzip > foo-1.0.tar.gz
备注:
在建立归档时,如果树对象ID(tree对象)进行归档,则使用当前时间作为归档文件的修改时间
如果用提交ID或者tags进项归档,会以提交时间作为归档文件的修改时间
如果归档时需要忽略某些文件或者目录
.git/info/attributes仅对版本有效,可以放在库上
例如某的项目的attributes文件:
/tests export-ignore
.gitattributes export-ignore
.gitignore export-ignore
.scrutinizer.yml export-ignore
.travis.yml export-ignore
phpunit.php export-ignore
phpunit.xml.dist export-ignore
phpunit.xml export-ignore
.php_cs export-ignore