说明:本手册的目的,是为了方便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

其他资源

标签: ,

分类: ,

更新时间:

留下评论

您的电子邮箱地址并不会被展示。请填写标记为必须的字段。 *

正在加载...