说明:本手册的目的,是为了方便Git使用者对常见场景及常用命令进行速查,它并不涵盖所有Git使用的细节,也不涉及任何理论知识。如果你想了解Git理论与使用细节,请见其他资源
配置
安装后的配置
安装完成后的配置:
$ git config --global user.name "<your_name>"
$ git config --global user.email "<your_email>"
加上 --global
针对当前用户起作用,如不加,只针对当前仓库起作用。当前用户的Git配置文件放在用户主目录下的.gitconfig中,每个仓库的Git配置文件放在.git/config中。
其他常用配置
让Git显示颜色:
$ git config --global color.ui true
忽略某些文件时,需要编写.gitignore,并放到版本库里,参考这里。 强制添加某个被忽略的文件:
$ git add -f <file>
了解.gitignore中的哪条规则对被忽略文件起作用:
$ git check-ignore -v <file>
定义命令别名,例如:
$ git config --global alias.st status
$ git config --global alias.co checkout
$ git config --global alias.ci commit
$ git config --global alias.br branch
$ git config --global alias.unstage 'reset HEAD'
$ git config --global alias.last 'log -1'
$ git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
GitHub相关配置
SSH Key配置
在用户主目录下执行如下命令以生成SSH Key:
$ ssh-keygen -t rsa -C "<your_email>"
登录GitHub添加SSH Key,粘贴id_rsa.pub文件的内容。
常用命令
添加一个或多个文件:
$ git add <file1> <file2> ...
提交更改:
$ git commit -m "<your_message>"
查看工作区状态:
$ git status
查看修改内容:
$ git diff <file>
查看提交历史:
$ git log [--pretty=oneline]
查看命令历史:
$ git reflog
删除文件:
$ git rm <file>
工作区暂存
保存当前工作现场:
$ git stash
列出保存的工作现场:
$ git stash list
恢复工作现场:
$ git stash apply stash@{num}
$ git stash drop stash@{num}
或,
$ git stash pop
恢复版本
恢复到指定版本:
$ git reset --hard <commit_id>
$ git reset --hard HEAD^|HEAD^^|...|HEAD~<num>
丢弃工作区修改:
$ git checkout -- <file>
丢弃暂存区修改:
$ git reset HEAD <file>
管理库
创建
登录GitHub创建新的库。
或创建本地版本库:
$ git init
库克隆与关联
克隆远程库:
$ git clone git@github.com:<path_to_your_repo>.git
$ git clone git@<your_server>:<path_to_your_repo>.git
或者将本地库与远程库关联:
$ git remote add origin git@github.com:<path_to_your_repo>.git
$ git remote add origin git@<your_server>:<path_to_your_repo>.git
查看远程库:
$ git remote [-v]
抓取分支:
$ git pull
推送
第一次把本地库的master分支的所有内容推送到远程库:
$ git push -u origin master
下次,只要每次本地做了提交,可以执行如下命令:
$ git push origin master
分支管理
创建分支:
$ git checkout -b <branch>
创建远程分支到本地:
$ git checkout -b <branch> origin/<branch>
查看当前分支:
$ git branch
切换到某分支:
$ git checkout <branch>
合并别的分支到当前分支:
$ git merge <branch>
删除分支:
$ git branch -d <branch>
强行删除分支:
$ git branch -D <branch>
查看分支合并情况:
$ git log --graph --pretty=oneline --abbrev-commit
合并分支时禁用fastforward模式:
$ git merge --no-ff -m "<your_comment>" <branch>
指定本地分支与远程分支的链接:
$ git branch --set-upstream <branch> origin/<branch>
标签管理
建立标签:
$ git tag <tag> [<commit_id>]
建立带说明的标签:
$ git tag -a <tag> -m <your_comment> [<commit_id>]
查看所有标签:
$ git tag
查看标签信息:
$ git show <tag>
删除标签:
$ git tag -d <tag>
推送标签到远程
$ git push origin <tag>
推送所有尚未被推送的本地标签
$ git push origin --tags
删除远程标签(先删除本地标签):
$ git push origin :refs/tags/<tag>
搭建Git服务器
安装Git(以Ubuntu为例):
$ sudo apt-get install git
创建一个git用户:
$ sudo adduser git
把所有Git用户的公钥id_rsa.pub导入到/home/git/.ssh/authorized_keys文件里,一行一个。
选定一个目录,在该目录下初始化Git仓库:
$ sudo git init --bare <your_repo>.git
把owner改成git:
$ sudo chown -R git:git <your_repo>.git
禁用shell登录,编辑/etc/passwd,将:
git:x:1001:1001:,,,:/home/git:/bin/bash
改成:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
Git用户在本地克隆远程仓库:
$ git clone git@<your_server>:/<path_to_your_repo>.git
留下评论
您的电子邮箱地址并不会被展示。请填写标记为必须的字段。 *