Git 使用笔记

查看配置

git config --list  

添加远程仓库

 git remote add origin git://github.com/maijz/test-git.git

配置用户名和密码

当你安装Git后首先要做的事情是设置你的用户名称和e-mail地址。这是非常重要的,因为每次Git提交都会使用该信息。它被永远的嵌入到了你的提交中:

git config --global user.name "maijz"  
git config --global user.email maijz@mail.com 
git config --global user.mail "maijz@mail.com"

强制删除提交到远程版本库的数据与版本记录

git reset --hard HEAD~2                   # 取消当前版本之前的两次提交
git push origin HEAD --force              # 强制提交到远程版本库,从而删除之前的两次提交数据

删除github上的一个项目的内容,重新提交所有内容

git rm -r --cached .
git add .
git commit -m ".gitignore is now working"

创建新的空白分支

git checkout --orphan gh-pages
# 创建一个orphan的分支,这个分支是独立的

git rm -rf .
# 删除原来代码树下的所有文件

# 注意这个时候你用git branch命令是看不见当前分支的名字的,除非你进行了第一次commit。

git push origin gh-pages
# 在commit操作之后,你就可以用git branch命令看到新分支的名字了,然后push到远程仓库。

推送本地到远程分支

git push origin 本地分支名:远程分支名

新建远程分支,从当前分支

git push origin master:dev

新建本地分支,从远程分支并建立映射关系

git checkout -b 本地分支名 origin/远程分支名

新建本地分支,从远程分支但不会建立映射关系

git fetch origin 远程分支名:本地分支名

删除本地分支

git branch -D 本地分支名

删除git远程分支

# 本地仓库 执行 
git push origin  :{远程分支名}
# 意思是将本地空分支推送到远程分支,相当于删除远程分支

删除本地标签

git tag -d 标签名

删除远程标签

git push origin :refs/tags/标签名

Git pull 强制覆盖本地文件

git fetch --all  
git reset --hard origin/master 
git pull

强制推送代码

git push -f

Git fetch 的简单用法:

更新远程代码到本地仓库
# 从远程的origin仓库的master分支下载到本地并新建一个分支temp
git fetch origin master:temp

# 比较本地的仓库和远程参考的区别
git diff temp

# 合并temp分支到master分支
git merge temp

代理设置

git config --global http.proxy 'socks5://127.0.0.1:1080'

git config --global https.proxy 'socks5://127.0.0.1:1080'

git config --global http.sslverify false

别名

只需要敲一行命令,告诉Git,以后st就表示status

 git config --global alias.st status

当然还有别的命令可以简写,很多人都用co表示checkout,ci表示commit,br表示branch:

 git config --global alias.co checkout
 git config --global alias.ci commit
 git config --global alias.br branch
 git config --global alias.logl log -list

合并Commit(提交)

git rebase -i HEAD~6

取消已经暂存的文件

git reset HEAD <file>...

其他

git log退出方法

shift + q