<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[静怡家园]]></title> 
<link>http://www.zhanghaijun.com/index.php</link> 
<description><![CDATA[书山有路勤为径，学海无涯苦作舟！]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[静怡家园]]></copyright>
<item>
<link>http://www.zhanghaijun.com/post//</link>
<title><![CDATA[Git常用命令]]></title> 
<author>碟舞飞扬 &lt;webmaster@zhanghaijun.com&gt;</author>
<category><![CDATA[Linux技术]]></category>
<pubDate>Thu, 07 Aug 2014 03:43:14 +0000</pubDate> 
<guid>http://www.zhanghaijun.com/post//</guid> 
<description>
<![CDATA[ 
	Git配置相关：<br/><br/>git config --global user.name "robbin" <br/>git config --global user.email "test@test.com"<br/>git config --global color.ui true<br/>git config --global alias.co checkout<br/>git config --global alias.ci commit<br/>git config --global alias.st status<br/>git config --global alias.br branch<br/>git config --global core.editor "mate -w"&nbsp;&nbsp;&nbsp;&nbsp;# 设置Editor使用textmate<br/>git config -l&nbsp;&nbsp;# 列举所有配置<br/><br/>用户的git配置文件~/.gitconfig&nbsp;&nbsp;<br/><br/>Git常用命令查看、添加、提交、删除、找回，重置修改文件<br/>git help <command>&nbsp;&nbsp;# 显示command的help<br/>git show&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 显示某次提交的内容<br/>git show $id<br/><br/>git co&nbsp;&nbsp;-- <file>&nbsp;&nbsp; # 抛弃工作区修改<br/>git co&nbsp;&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 抛弃工作区修改<br/><br/>git add <file>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# 将工作文件修改提交到本地暂存区<br/>git add .&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 将所有修改过的工作文件提交暂存区<br/><br/>git rm <file>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 从版本库中删除文件<br/>git rm <file> --cached&nbsp;&nbsp;# 从版本库中删除文件，但不删除文件<br/><br/>git reset <file>&nbsp;&nbsp;&nbsp;&nbsp;# 从暂存区恢复到工作文件<br/>git reset -- .&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# 从暂存区恢复到工作文件<br/>git reset --hard&nbsp;&nbsp;&nbsp;&nbsp;# 恢复最近一次提交过的状态，即放弃上次提交后的所有本次修改<br/><br/>git ci <file><br/>git ci .<br/>git ci -a&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 将git add, git rm和git ci等操作都合并在一起做<br/>git ci -am "some comments"<br/>git ci --amend&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# 修改最后一次提交记录<br/><br/>git revert <$id>&nbsp;&nbsp;&nbsp;&nbsp;# 恢复某次提交的状态，恢复动作本身也创建了一次提交对象<br/>git revert HEAD&nbsp;&nbsp;&nbsp;&nbsp; # 恢复最后一次提交的状态<br/><br/>查看文件diff<br/><br/>git diff <file>&nbsp;&nbsp;&nbsp;&nbsp; # 比较当前文件和暂存区文件差异<br/>git diff<br/>git diff <$id1> <$id2>&nbsp;&nbsp; # 比较两次提交之间的差异<br/>git diff <branch1>..<branch2> # 在两个分支之间比较 <br/>git diff --staged&nbsp;&nbsp; # 比较暂存区和版本库差异<br/>git diff --cached&nbsp;&nbsp; # 比较暂存区和版本库差异<br/>git diff --stat&nbsp;&nbsp;&nbsp;&nbsp; # 仅仅比较统计信息<br/><br/>查看提交记录<br/><br/>git log<br/>git log <file>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# 查看该文件每次提交记录<br/>git log -p <file>&nbsp;&nbsp; # 查看每次详细修改内容的diff<br/>git log -p -2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 查看最近两次详细修改内容的diff<br/>git log --stat&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# 查看提交统计信息<br/>tig&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(Mac上可以使用tig代替diff和log，brew install tig)<br/><br/>Git 本地分支管理查看、切换、创建和删除分支<br/><br/>git br -r&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 查看远程分支<br/>git br <new_branch> # 创建新的分支<br/>git br -v&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 查看各个分支最后提交信息<br/>git br --merged&nbsp;&nbsp;&nbsp;&nbsp; # 查看已经被合并到当前分支的分支<br/>git br --no-merged&nbsp;&nbsp;# 查看尚未被合并到当前分支的分支<br/><br/>git co <branch>&nbsp;&nbsp;&nbsp;&nbsp; # 切换到某个分支<br/>git co -b <new_branch> # 创建新的分支，并且切换过去<br/>git co -b <new_branch> <branch>&nbsp;&nbsp;# 基于branch创建新的new_branch<br/><br/>git co $id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# 把某次历史提交记录checkout出来，但无分支信息，切换到其他分支会自动删除<br/>git co $id -b <new_branch>&nbsp;&nbsp;# 把某次历史提交记录checkout出来，创建成一个分支<br/><br/>git br -d <branch>&nbsp;&nbsp;# 删除某个分支<br/>git br -D <branch>&nbsp;&nbsp;# 强制删除某个分支 (未被合并的分支被删除的时候需要强制)<br/><br/>分支合并和rebase<br/><br/>git merge <branch>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# 将branch分支合并到当前分支<br/>git merge origin/master --no-ff&nbsp;&nbsp;# 不要Fast-Foward合并，这样可以生成merge提交<br/><br/>git rebase master <branch>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 将master rebase到branch，相当于：<br/>git co <branch> && git rebase master && git co master && git merge <branch><br/><br/>Git补丁管理(方便在多台机器上开发同步时用)<br/><br/>git diff > ../sync.patch&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 生成补丁<br/>git apply ../sync.patch&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# 打补丁<br/>git apply --check ../sync.patch&nbsp;&nbsp;# 测试补丁能否成功<br/><br/>Git暂存管理<br/><br/>git stash&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# 暂存<br/>git stash list&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 列所有stash<br/>git stash apply&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# 恢复暂存的内容<br/>git stash drop&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 删除暂存区<br/><br/>Git远程分支管理<br/><br/>git pull&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 抓取远程仓库所有分支更新并合并到本地<br/>git pull --no-ff&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 抓取远程仓库所有分支更新并合并到本地，不要快进合并<br/>git fetch origin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 抓取远程仓库更新<br/>git merge origin/master&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# 将远程主分支合并到本地当前分支<br/>git co --track origin/branch&nbsp;&nbsp;&nbsp;&nbsp; # 跟踪某个远程分支创建相应的本地分支<br/>git co -b <local_branch> origin/<remote_branch>&nbsp;&nbsp;# 基于远程分支创建本地分支，功能同上<br/><br/>git push&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # push所有分支<br/>git push origin master&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 将本地主分支推到远程主分支<br/>git push -u origin master&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# 将本地主分支推到远程(如无远程主分支则创建，用于初始化远程仓库)<br/>git push origin <local_branch>&nbsp;&nbsp; # 创建远程分支， origin是远程仓库名<br/>git push origin <local_branch>:<remote_branch>&nbsp;&nbsp;# 创建远程分支<br/>git push origin :<remote_branch>&nbsp;&nbsp;#先删除本地分支(git br -d <branch>)，然后再push删除远程分支<br/><br/>Git远程仓库管理<br/><br/>git remote -v&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# 查看远程服务器地址和仓库名称<br/>git remote show origin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 查看远程服务器仓库状态<br/>git remote add origin git@github:robbin/robbin_site.git&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 添加远程仓库地址<br/>git remote set-url origin git@github.com:robbin/robbin_site.git # 设置远程仓库地址(用于修改远程仓库地址)<br/>git remote rm <repository>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # 删除远程仓库<br/><br/>创建远程仓库<br/><br/>git clone --bare robbin_site robbin_site.git&nbsp;&nbsp;# 用带版本的项目创建纯版本仓库<br/>scp -r my_project.git git@git.csdn.net:~&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# 将纯仓库上传到服务器上<br/><br/>mkdir robbin_site.git && cd robbin_site.git && git --bare init # 在服务器创建纯仓库<br/>git remote add origin git@github.com:robbin/robbin_site.git&nbsp;&nbsp;&nbsp;&nbsp;# 设置远程仓库地址<br/>git push -u origin master&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;# 客户端首次提交<br/>git push -u origin develop&nbsp;&nbsp;# 首次将本地develop分支提交到远程develop分支，并且track<br/><br/>git remote set-head origin master&nbsp;&nbsp; # 设置远程仓库的HEAD指向master分支，也可以命令设置跟踪远程库和本地库<br/><br/>git branch --set-upstream master origin/master<br/>git branch --set-upstream develop origin/develop<br/>Tags - <a href="http://www.zhanghaijun.com/tags/git/" rel="tag">git</a> , <a href="http://www.zhanghaijun.com/tags/linux/" rel="tag">linux</a> , <a href="http://www.zhanghaijun.com/tags/%25E5%2591%25BD%25E4%25BB%25A4/" rel="tag">命令</a>
]]>
</description>
</item><item>
<link>http://www.zhanghaijun.com/post//#blogcomment</link>
<title><![CDATA[[评论] Git常用命令]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.zhanghaijun.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>