显示出所有分支以及分支sha

git branch -v

显示出当前文件夹修改状态

git status -- .

批量提交已修改,已删除,新增,等状态文件

git commit -a

新建分支

git branch newb

切换分支

git checkout newb    # 这条命令同同时也是吧修改还原
git checkout file    # 根据 rep 恢复暂存区与工作区的修改
git checkout -b newb    # 新建分支并切换至

初始化git仓库

git init 
git init --bare    # 不带工作区

记录所有修改到暂存

git add -u
git add -u -- .    # 指当前目录下所有修改(包括删除)
git add -A stages All
git add . stages new and modified, without deleted
git add -u stages modified and deleted, without new

把当前工作区的所有修改打包起来,并恢复工作区到最近的commit状态 (注意,未版本控制的文件是不会被打包的)

git stash 
git stash -u    # 包括未版本控制的文件
git stash pop

删除 untracked files


git clean -f

连 untracked 的目录也一起删掉


git clean -fd

连 gitignore 的untrack 文件/目录也一起删掉 (慎用,一般这个是用来删掉编译出来的 .o之类的文件用的)


git clean -xfd

在用上述 git clean 前,墙裂建议加上 -n 参数来先看看会删掉哪些文件,防止重要文件被误删


git clean -nxfd
git clean -nf
git clean -nfd

一些问题

warning: LF will be replaced by CRLF in 的解决办法

git config --global core.autocrlf false    # 一般在win下使用。
git config --global core.autocrlf true    # win使用
git config --global core.autocrlf input    # linux/mac使用
true 表示出库转换为 `crlf` 入库为 `lf` ,`input` 表示出库默认,入库为 `lf`。这样保证仓库始终是 `lf` 状态。

autocrlf = true 表示要求git在提交时将crlf转换为lf,而在检出时将crlf转换为lf。
autocrlf = false 表示提交和检出代码时均不进行转换
autocrlf = input 表示在提交时将crlf转换为lf,而检出时不转换

中文路径问题

在中文情况下 git status是 “344272247345223201351234200346261202” 差不多这样的。
解决这个问题方法是:

git config --global core.quotepath false

标签: none

添加新评论