Git 配置

git config --global user.name “<Your Name>”

设置提交作者名称, 如果只适用本地仓库可去掉 --global

git config --global user.email “<you@example.com>”

设置提交作者的邮箱

git config --global color.ui auto

激活输出的彩色格式

开始一个项目

git init <project name>

创建一个地仓库,输入<project name>则创建出的仓库名称为<project name>, 不输入则在当前目录下初始化git仓库

git clone <project url>

设置提交作者的邮箱

日常使用

git status

显示当前仓库的状态,包括工作区和暂存区的文件变化状态(如 新增、修改、删除)

git add <file>

将文件添加到暂存区(staging area)

git diff <file>

对比工作区(working directory)和暂存区(staging area)的不同

git diff --staged <file>

对比和暂存区(staging area)的不同

git checkout -- <file>

抛弃工作区的变化
git reset <file>重置仓库历史
git commit -m "<message>"将暂存区(staging area)的变化提交到仓库
git rm <file>将文件从工作区(working directory)和暂存区(staging area)删除
git stash将工作区变化临时存储(stash)起来,  供以后使用
git stash pop将stash的内容应用到工作区(working directory), 并从stash 中删除
git stash apply将stash的内容应用到工作区(working directory), stash 依然保留
git stash drop将stash的内容清除掉

Git分支

git branch  

列出仓库的本地分支, 使用 -a 可以列出包括远程分支的所有分支

git branch <branch_name>

创建一个新的分支 , 名为<branch_name>
git checkout <branch_name>切换到一个分支 <branch_name>
git checkout -b <branch_name>创建一个新的分支并切换到这个分支
git merge <from_name>把分支 <from_name>合并到当前分支
git branch -d <branch_name>删除一个分支

查看历史记录

git log  [-n count]

显示Git提交历史,可以使用 -n 指定显示多少条记录

git log --oneline --graph --decorate

以每行一条记录图形化的方式显示git log

git log ref..


git log ..ref
git reflog显示所有分支的所有记录(包括已删除的还没有gc的),挽救reset时会用到

打Tag

git tag

列出所有的tag

git tag <name>  [commit sha]

打名为name的Tag (reference), 如果输入 commit 编号,则以在这个编号上打,如果不输入commit 编号, 在当前的commit上打

git tag  -a <name>  [commit sha]

和上面命令相比创建了个tag 的对象
git tag  -a <name>删除一个tag


同步远程(通常是服务器侧)仓库

git fetch [remote]

从某个remote 拉取代码,但不合并到本地分支

git pull [remote]

从某个remote 拉取代码,合并到本地分支

git push [--tags] [remote]

将本地的变化推送到remote, 使用 --tags 可以推送tag

git push -u [remote] [branch]

将本地分支推送到远端remote, 并设置upstream的追踪

附:Git工作区