Git 终端命令
2017-05-05 本文已影响6人
nenhall
相关链接:SVN 终端命令
配置语法:
以斜杠“/”开头表示目录;
以星号“*”通配多个字符;
以问号“?”通配单个字符
以方括号“[]”包含单个字符的匹配列表;
以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;
Git 忽略文件、文件夹
*.a # 忽略所有 .a 结尾的文件
!lib.a # 但 lib.a 除外
/TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
build/ # 忽略 build/ 目录下的所有文件
doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
eg:
-
过滤文件夹:
/mtk/ 表示过滤这个文件夹 -
指定过滤某种类型的文件:
\*.zip \*.rar \*.via \*.tmp \*.err
-
指定过滤某个文件:
/mtk/do.c /mtk/if.h
-
保守模式负责设置哪些文件不被过滤,也就是哪些文件要被跟踪。
跟踪某个文件夹!/plutommi/mmi
跟踪文件
-
跟踪某类文件
\!\*.c \!*.h
-
跟踪某个指定文件
!/plutommi/mmi/mmi_features.h
采用共享模式与保守模式结合配置的办法。
eg:一个文件夹下有很多文件夹和文件,而我只想跟踪其中的一个文件,这样设置就可以满足这种情况,先用共享模式把整个目录 都设置为不跟踪,然后再用保守模式把这个文件夹中想要跟踪的文件设置为被跟踪,配置很简单,就可以跟踪想要跟踪的文件。
.gitignore忽略文件规则
.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。那么解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:
git rm --cached <FILENAME>: //后面放你要删除的缓存文件名
或者
git rm -r --cached . //删除所有文件缓存
或者
git rm -r *.a //删除所有.a文件缓存
git add .
git commit -m "update .gitignore"
Git 全局设置:
git config --global user.name "xxx"
git config --global user.email "xxx@126.com"
创建 git 仓库:
mkdir chinafm //创建文件夹,此步可以跳过
cd chinafm //进入到刚创建的文件夹,此步可以跳过
git init //初始化一个仓库
touch README.md //创建一个README.md文件
git add README.md //把刚创建的文件添加到git(添加单个指定文件)
git add . //添加所有改变后的文件
git commit -m "first commit" //增加更新注释(说明),双引号内的就是你要写的注释
//添加仓库关联 https://git.oschina.net/xxxx.git换成你的仓库地址
git remote add origin https://git.oschina.net/xxxx.git
git push -u origin master //推送代码到到git仓库
删除相应文件,还在利用git命令从git中删除:
git filter-branch --force --index-filter "git rm --cached --ignore-unmatch Project1/Project1.1\ Sample\ Project/output.txt" --prune-empty --tag-name-filter cat -- --all
//删除cache
git filter-branch --index-filter 'git rm -r --cached --ignore-unmatch static/a.bin' HEAD
git commit --amend -CHEAD
git push origin master
git回滚,执行完commit后,想撤回commit,怎么办?
git reset --soft HEAD^·
注意要在.git文件夹目录下执行以上命令
给某工程单独添加git的配置文件(非全局):
1,创建 .giignore
;
2,打开在里面按上面的语法添加你需要忽略的文件;