Git常用命令
2017-03-29 18:08
323 查看
Git的 普通用户 | 基本操作 | init & clone | git init | 初始化 |
git clone 地址 | clone项目 | |||
add & commit | git add (file) | 添加file | ||
git add *.c | 添加扩展名为c的所有文件 | |||
git add . | 添加当前文件夹下所有文件 | |||
git commit -m “注释” | 提交文件 | |||
status | git status | 查看状态 | ||
Ignore | 见附录 | |||
diff | git diff | 默认是staged | ||
git diff --staged | 比较工作区和暂存区的区别 | |||
git diff --cached | 比较暂存区和本地仓库的区别 | |||
reset (版本回退) | git reset --hard HEAD^ | 回退到上一个版本 | ||
git reset --hard HEAD^^ | 回退到上上个版本 | |||
git reset --hard HEAD~100 | 回退到前100个版本 | |||
git reset --hard xxx | 根据版本号回退 | |||
reflog | git reflog | 查看历史记录的版本号ID | ||
mv,rm | git mv (file) | |||
git rm (file) | 删除file | |||
共享及更新项目 | fetch,pull | git pull origin | 从远程origin拉下来与本地合并 | |
git fetch origin | 从远程origin拉下来新建一个分支 | |||
push | git push -u origin master | 把master分支推送到远程origin(第一次需要-u) | ||
remote | git remote | 列出远程仓库 | ||
git remote -v | 列出远程仓库地址 | |||
git remote add origin web | 添加远程仓库网址并命名为origin | |||
git remote rename origin ori | 将远程仓库origin重命名为ori | |||
git remote rm origin | 将远程仓库删除 | |||
git remote show origin | 展示origin的地址 | |||
观察和比较 | log | git log | 查看历史记录 | |
git log -pretty=oneline | 每个记录用1行显示 | |||
diff | 同上 | |||
Git的仓库管理员 | 初始化和建立项目 | init | 同上 | |
clone | 同上 | |||
分支管理层及合并 | branch | git branch | 显示所有分支 | |
git branch aaa | 建立分支aaa | |||
git show-branch | 展示分支 | |||
git branch -d aaa | 删除aaa分支 | |||
git diff branch1 branch2 | 比较2个分支差异 | |||
checkout | git checkout aaa | 切换到aaa分支 | ||
git checkout --aaa.txt | 把aaa.txt在工作区做的修改撤销(未add或commit) | |||
merge | git merge “x” HEAD branch 1 | 把branch1分支与当前分支合并 “”里为注释 | ||
git checkout master | 合并 | |||
git pull .branch1 | ||||
log | 同上 | |||
tag | git tag -a ver1.0 -m “msg” | 标记所有文件为ver1.0 |
在仓库目录下新建一个名为.gitignore的文件(打开Git Bash,按照Linux的方式来新建.gitignore文件
PS:touch .gitignore)。
.gitignore文件对其所在的目录及所在目录的全部子目录均有效。通过将.gitignore文件添加到仓库,其他开发者更新该文件到本地仓库,以共享同一套忽略规则。
忽略的语法规则:
1.(#) 表示注释
2.(*) 表示任意多个字符;
3.(?) 代表一个字符;
4.([abc]) 代表可选字符范围
5.如果名称最前面是路径分隔符 (/),表示忽略的该文件在此目录下。
如果名称的最后面是 (/)
,表示忽略整个目录,但同名文件不忽略。
通过在名称前面加 (!)
,代表不忽略。
例1:忽略*.b和*.c文件
*.[bc]
例2:忽略*.a和*.A文件,example.a除外
*.[aA]
!example.a
例3:忽略bin文件和bin目录
bin
例4:只忽略bin目录,不忽略bin文件
bin/
例5:只忽略bin文件,不忽略bin目录
bin
!bin/
例6:只忽略当前目录下的bin文件和目录,子目录的bin不在忽略范围内
/bin
例7:忽略当前目录下bin及其里面所有内容
/bin/
例8:若test下有多个文件和文件夹。若要ignore某些文件夹,如test下有test1,test2,test3文件,要track
test3。
test/test1
test/test2
!test/test3
若为:
test/
!test/test3 则不能track test3。
一定要记得添加.gitignore