(注:本文转自Git入门教程)

创建新仓库:

git init在当前目录建立本地新仓库

git clone url在当前目录克隆一个远端仓库

添加用户名及邮箱有两种方式

方式一:编辑.git/config

[user]  
	name =  
	email =

方式二:使用命令行

	git config --global user.name "xxxxxx" 
	git config --global user.email "xxxxxxx"
	(备注:--global表示添加到全局配置中,全局配置在~/.gitconfig中, 如果不加--global,就只会修改当前目录下.git/config)

在本地仓库上工作:

你的文件可能存在于不同的层次:

  • 工作目录
  • 暂存区域
  • 本地仓库
工作目录:

文件可能有三种不同状态:

  • 未被追踪
  • 已追踪未修改
  • 已追踪已修改
暂存区域(包含了在下次将要被提交的修改):

使用git add/rm <file>将增加/修改/删除的文件暂存

本地仓库:

使用git commit -m "message"提交已经暂存的更改

常用操作:

git status:显示当前所处分支与修改(包括暂存与未暂存)

git checkout HEAD -- <file> 使某个文件恢复到上次提交时的状态

git checkout -- <file> 使某个文件恢复到上次暂存时的状态(Updated Lucups@V2EX

git reset HEAD <file> 使某个修改由已暂存变为未暂存

将本地仓库重置成与远端一样:git fetch origin git reset --hard origin/master

检查提交历史:

git log:查看以往的提交以及提交时的留言

git log 1 -p:查看最后一次提交及其改动

git log --author=<name>:仅显示某人的的提交

git log --pretty=oneline:一行显示一个提交

git log --graph --oneline --decorate --all:以树状图显示提交历史

git log --name-status:仅显示哪些文件被改动

暂存:

当你需要建立新分支时,可能需要一个干净的工作目录,但是一时半会儿没法提交时,暂存是你的好选择。

git stash:暂存当前的暂存区域

git stash list:列出已有的暂存

git stash pop:将暂存中的改变重新释放出来

分支与合并:

git branch <branchname>来创建新分支

优点:
  1. 安全:多个特性平行开发,再也不会搞得一塌糊涂
  2. 灵活的共享:只要不主动推送,本地新分支是不会推送至远端的
  3. 切换十分方便
何时创建新分支:

新的特性需要开发,有Bug需要修补,不同思路做实验。。。

HEAD:

Git中只有一个分支是活跃的也就是HEAD所指向的那个。

使用git checkout <branch>来切换分支,HEAD也随之改变

git branch -v:列出所有分支以及当前活跃的分支

合并:

git merge <branchname>:将某分支合并到当前分支

git branch -d <branchname>:删除某分支

远端仓库:

git push origin <branch>:推送本地分支

git fetch <branch>:获取远端分支但不进行合并

合并前可以通过git diff <source_branch> <target_branch>检查更改

git pull:获取远端分支并尝试合并

增加远端仓库:

git remote add shortname <url>

同步远端的分支list

(例如某分支在远端被删除了)
git fetch -p
or
git remote prune origin

打标签:

发布新版本时,打标签是个不错的选择:git tag <tagname> <hash>

GIT PUSH/PULL时总需要输入用户名密码的解决方案

git操作时只要输入一次用户名与密码,以后就不用输入了
在 mac系统
git config --global credential.helper osxkeychain
在其他系统
git config --global credential.helper store

小提示:

gitk:内置的图形界面

git config color.ui true:使命令行输出变成彩色

git add -i:不用一个个输入需要暂存的文件的文件名,进行交互式选择

客户端与拓展阅读:

客户端:

Tower(Mac)

GitHub(Windows&Mac)

SourceTree(Windows&Mac)

拓展阅读:

图解Git

Pro Git 中文第一版 英文第二版

Think Like (a) Git