姚宁的博客

git常用配置及命令及资料

配置

[alias]
        co = checkout
        br = branch
        ci = commit
        st = status
        lg = "log --graph --pretty=format:' %C(auto)%h %d%s %Cblue%an %Cgreen%ar'"
        last = log -l HEAD
[push]
        default = simple
[pull]
        rebase = true
[user]
        email = chinayaoning@gmail.com
        name = yaoning

如何配置

Mac用户在用户根目录下 修改.gitconfig文件
执行source .gitconfig即可生效
如果不存在 就新建文件

查看配置

git config --list --show-origin

可以查看系统和用户的git配置情况
当然 你也可以拿来查看git配置文件在哪里 windows和Mac通用的

命令


关联到远程仓库

## 如果是新建
touch README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin http://git.tianyancha.com/yaoning/test.git
git push -u origin master

## 仓库已存在
git remote add origin http://git.tianyancha.com/yaoning/test.git
git push -u origin master

查看、添加、提交、找回、重置

git --help <command>			//显示某个command的帮助说明
git st 							//显示当前工作区的状态
git co . 						//抛弃工作区的所有修改
git co <filePath/fileName> 		//抛弃某个文件的修改
git add . 						//将工作区的文件放入暂存区
git add <filePath/fileName> 	/将某个文件放入暂存区
git reset --hard				//将所有文件的修改取消掉 
git reset --. 					//将所有暂存区的文件放回工作区
git reset <filePath/fileName> 	//将某个文件从暂存区放入工作区
git ci -am""					//将文件加入暂存区并且做一次commit
git ci --amend					//将暂存区的文件做一次追加(适用于未push的commit)
git revert  <$id> 				//恢复某次提交的状态 并且创造一个新的commit
git diff						//查看不同

删除

## 删除commit
 git reset --hard <commit_id>

##如果已经push了,请确保不会影响他人
 git push origin HEAD --force

## 删除branch
 git br -d   / -D(强制删除)

## 删除远程 branch
 git push origin :<branch_name>

## 删除远程已经不存在的分支
 git remote prune origin

暂存管理

## 暂存当前内容
git stash 

## 显示暂存区所有内容
git stash list

## 恢复最近一次暂存的内容
git stash pop

常见问题

修改.gitignore无效

清除本地缓存(改为未跟踪状态)

git rm -r --cached .
git add .
git ci -am ""

报错

fatal: bad config line 2 in file /Users/yaoning/.gitconfig
确保粘贴到.gitconfig上的文件是使用正确的缩进
如下图红圈里边前边没有白色的标志 导致配置读取失败
改用tab缩进 或者直接贴着头写

RPC failed; curl 18 transfer closed with outstanding read data remaining
原因是项目太久,tag资源文件太大
在~/.gitconfig 中加入如下配置即可

[http]
        postBuffer = 524288000

一些资源

官方
git-book-zh
oschina git文档
git-tower 好用的git客户端
git-fork 酷炫的git客户端
source-tree 比较老牌的客户端 帮助你生成gitignore文件