git

来源:互联网 发布:java fastjson api 编辑:程序博客网 时间:2024/05/29 14:07

http://blog.csdn.net/lynn_kong/article/details/8930865

声明:
本博客欢迎转发,但请保留原作者信息!
新浪微博:@孔令贤HW;
博客地址:http://blog.csdn.net/lynn_kong
内容系本人学习、研究和总结,如有雷同,实属荣幸!


更新历史:
2013.5.16  增加checkout及删除远程分支的示例
2013.5.20  增加强制与远程仓库同步的方法


git config --list 查看系统变量的配置

export https_proxy="http://XXXXXX:XXXXXX@XXXXXX:8080/" 配置代理
密码中的特殊字符转义:
ampersand & (%26)
at @ (%40)
space (%20)
double-quote " (%22)
single-quote ' (%27)
colon : (%3A)

git clone git://github.com/schacon/grit.git mygrit 后面可以自定义要新建的项目目录名称
git status 查看哪些文件当前处于什么状态
git add <file> 将文件添加到暂存区
git rm --cached <file> 取消暂存
git checkout -- <file> 从仓库中覆盖工作区文件
git mv file_from file_to 文件重命名
git diff 查看尚未暂存的文件更新了哪些部分
git diff --cached 查看已经暂存起来的文件和上次提交时的快照之间的差异

忽略文件
$ cat .gitignore
*.[oa]
!lib.a
temp/

git commit -m "commit message" 提交
git commit -a -m "commit message" 跳过暂存,直接提交
git commit --amend 重新提交,刚才提交完没有作任何改动,可以重新编辑提交说明,也可以
git add <file>, git commit --amend 增加要提交的文件,只会产生一次提交记录

删除文件:
rm <file> 从工作目录中删除
git rm <file> 记录移除文件的操作,下次commit后,文件就不再纳入版本管理

git log -p显示内容差异;-2显示最近两条;--stat,仅显示简要的增改行数统计;

git remote -v 查看远程仓库和克隆地址
git remote add [shortname] [url] 添加一个远程仓库
git fetch [shortname] 抓取远程仓库的更新,但不合并(克隆操作会自动使用默认的 master 和 origin 名字)
git pull 将远端分支自动合并到本地仓库中当前分支
git push [remote-name] [branch-name] 将本地仓库中的数据推送到远程仓库,一个示例(将本地分支提交到远程仓库的另一个分支):

[plain] view plaincopy
  1. $ git push origin featureB:featureBee  
  2. ...  
  3. To jessica@githost:simplegit.git  
  4.    fba9af8..cd685d1  featureB -> featureBee  
git remote rm [remote-name] 
git branch <branch_name> 创建分支(-d删除分支)
git checkout <branch_name> 切换到分支(-b新建并切换),示例,为本地分支设定不同于远程分支的名字:

[plain] view plaincopy
  1. $ git checkout -b sf origin/serverfix  
  2. Branch sf set up to track remote branch refs/remotes/origin/serverfix.  
  3. Switched to a new branch "sf"  

删除远程服务器上的分支:

[plain] view plaincopy
  1. $ git push origin :serverfix  
  2. To git@github.com:schacon/simplegit.git  
  3.  - [deleted]         serverfix  

git merge <new_branch_name> 将新分支的内容合并到当前分支,如果遇到冲突,可以使用git status查看冲突的文件,手工解决
或者使用rebase:
    git checkout dev
    git rebase master

    使dev成为master分支的直接下游,这样,在maste分支执行git merge dev就完成了分支的合并;


假如你想要丢弃你所有的本地改动与提交,可以到服务器上获取最新的版本并将你本地主分支指向到它:
git fetch origin
git reset --hard origin/master