初始化配置
**配置使用git仓库的人员姓名** git config --global user.name "Your Name Comes Here" **配置使用git仓库的人员email** git config --global user.email you@yourdomain.example.com
**配置到缓存 默认15分钟**git config --global credential.helper cache
**修改缓存时间**git config --global credential.helper 'cache --timeout=3600'git config --global color.ui true git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.br branch
git config --global core.editor "mate -w" # 设置Editor使用textmate git config -1 #列举所有配置 **用户的git配置文件~/.gitconfig**
查看添加提交删除找回重置修改文件">查看、添加、提交、删除、找回,重置修改文件
git help <command> **显示command的help** git show **显示某次提交的内容** git show $id
git co -- <file> **抛弃工作区修改** git co . **抛弃工作区修改** git add <file> **将工作文件修改提交到本地暂存区** git add . **将所有修改过的工作文件提交暂存区** git rm <file> **从版本库中删除文件** git rm <file> --cached **从版本库中删除文件,但不删除文件**git reset <file> **从暂存区恢复到工作文件** git reset -- . **从暂存区恢复到工作文件**git reset --hard **恢复最近一次提交过的状态,即放弃上次提交后的所有本次修改** git ci <file> git ci . git ci -a **将git add, git rm和git ci等操作都合并在一起做** git ci -am "some comments" git ci --amend **修改最后一次提交记录** git revert <$id> **恢复某次提交的状态,恢复动作本身也创建了一次提交对象** git revert HEAD **恢复最后一次提交的状态**
查看文件diff
git diff <file> **比较当前文件和暂存区文件差异**git diff <$id1><$id2> **比较两次提交之间的差异** git diff <branch1>..<branch2> **在两个分支之间比较** git diff --staged **比较暂存区和版本库差异**git diff --cached **比较暂存区和版本库差异**git diff --stat **仅仅比较统计信息**** Mac上可以使用tig代替diff和log,brew install**
取得git仓库
**初始化一个版本仓库** git init
**Clone远程版本库**git clone git@xbc.me:wordpress.git **添加远程版本库origin,语法为 git remote add [shortname] [url]**git remote add origin git@xbc.me:wordpress.git 查看远程仓库git remote -v
提交你的修改
**添加当前修改的文件到暂存区** git add . **如果你自动追踪文件,包括你已经手动删除的,状态为Deleted的文件**git add -u**提交你的修改**git commit –m "你的注释"**推送你的更新到远程服务器,语法为 git push [远程名] [本地分支]:[远程分支] **git push origin master
**查看文件状态**git status
**跟踪新文件**git add readme.txt**从当前跟踪列表移除文件,并完全删除**git rm readme.txt **仅在暂存区删除,保留文件在当前目录,不再跟踪 **git rm –cached readme.txt **重命名文件**git mv reademe.txt readme**查看提交的历史记录 **git log**修改最后一次提交注释的,利用–amend参数 **git commit --amend**忘记提交某些修改,下面的三条命令只会得到一个提交。**git commit –m "add readme.txt" git add readme_forgotten
git commit –amend
**假设你已经使用git add .,将修改过的文件a、b加到暂存区 **git reset HEAD b**取消对文件的修改**git checkout –- readme.txt
分支合并和rebase
git merge <branch> **将branch分支合并到当前分支** git merge origin/master --no-ff **不要Fast-Foward合并,这样可以生成merge提交**git rebase master <branch> **将master rebase到branch,相当于: ** git co <branch> && git rebase master && git co master && git merge <branch>
git补丁管理方便在多台机器上开发同步时用
git diff > ../sync.patch **生成补丁** git apply ../sync.patch **打补丁** git apply --check ../sync.patch **测试补丁能否成功**
Git暂存管理
git stash **暂存** git stash list **列所有stash** git stash apply **恢复暂存的内容** git stash drop **删除暂存区**
Git远程分支管理
git remote -v **查看远程服务器地址和仓库名称** git remote show origin **查看远程服务器仓库状态 ** git remote add origin git@ github:robbin/robbin_site.git **添加远程仓库地址** git remote set-url origin git@ github.com:robbin/robbin_site.git # **设置远程仓库地址(用于修改远程仓库地址) **git remote rm <repository> **删除远程仓库**
创建远程仓库
git clone --bare robbin_site robbin_site.git **用带版本的项目创建纯版本仓库** scp -r my_project.git git@ git.csdn.net:~ **将纯仓库上传到服务器上** mkdir robbin_site.git && cd robbin_site.git && git --bare init **在服务器创建纯仓库** git remote add origin git@ github.com:robbin/robbin_site.git **设置远程仓库地址** git push -u origin master **客户端首次提交** git push -u origin develop **首次将本地develop分支提交到远程develop分支,并且track **git remote set-head origin master **设置远程仓库的HEAD指向master分支** **也可以命令设置跟踪远程库和本地库**git branch --set-upstream master origin/master
git branch --set-upstream develop origin/develop