Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2775838
  • 博文数量: 505
  • 博客积分: 1552
  • 博客等级: 上尉
  • 技术积分: 2514
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-23 18:24
文章分类

全部博文(505)

文章存档

2019年(12)

2018年(15)

2017年(1)

2016年(17)

2015年(14)

2014年(93)

2013年(233)

2012年(108)

2011年(1)

2009年(11)

分类: LINUX

2012-08-23 11:32:09

1、配置颜色、常用属性:
git config --global color.branch auto
git config --global color.diff auto
git config --global color.interactive auto
git config --global color.status auto

或者你可以通过color.ui选项把颜色全部打开:
git config color.ui true

git config --global user.name "Your Name Comes Here"
git config --global user.email you@yourdomain.example.com

git checkout --track origin/ipcam(本地没有ipcam分支,但是服务器上有,那么这个命令就会把服务器的ipcam分支pull下来)
git branch -d ipcam(删除本地ipcam分支)
git push origin :ipcam(删除本地ipcam分支)

2、Git 自動忽略檔案 / 目錄設定

要自動將某些檔案掠過不 Commit, 要設定 .gitignore 這個檔案. (哪些檔案是不要 commit 進去的)

  • vim .gitignore

    tmp/**/*
    log/*
    config/database.yml

  • 使用 git add . 等, 這些都不會將這些資料列入 commit. (.gitignore 會被列入 commit)
修改預設目錄

預設會產生 .git 目錄, 改成 .test

  • 修改 Shell 變數 GIT_DIR => export GIT_DIR=.test

3、git format-patch使用:
git log --pretty=oneline
506d0d0bb0716e07432a532a0e5d97267cd38c0d change spi-flash for update firmware much faster.
7fcabda691a6b9cd4f322de06f2c34601b067356 添加使用25MHz晶振时,ls1b vga接口可正常显示的时序.
bb8ddee188f1a3380df65d094bb3993446bbec46 modify steppingmotor driver to solve the problem of excessive using cpu times
8e2dcb01771016e5eeb17b22775bf013410e596e 修改gcc编译标记,取消mips32r2,使用mips32编译.

如果我们只要其中的几个更新,那么可以这样做:
git format-patch bb8ddee...8e2dcb0
0001-modify-steppingmotor-driver-to-solve-the-problem-of-.patch
可以看到只生成了第3个commit的补丁。


然后在另外的分支打上补丁:
git am 0001-modify-steppingmotor-driver-to-solve-the-problem-of-.patch

4、比较不同版本:
查看与上一个版本的区别(列出不同的文件):git diff --stat HEAD^
查看与上一个版本具体文件的不同:git diff  HEAD^ file

5、根据提交者来搜索:
git log --author bill
就会列出bill这个人提交的所有代码的列表。

6、git操作远程分支:
新建远程b2分支:
git branch b2;
git push origin b2;
其他的开发者通过以下命令从远程git切换到b2分支:
git checkout --tracking origin/b2
删除远程分支:
git push origin :b1

如果需要删除一个远程分支,则需要git push origin :b1根据 git push的定义,就是把空push到远程的b1 branch。也就是删除了。

但是,如果别人已经在b1删除之前执行了fetch或者pull,在本地有了b1这个branch,再次执行fetch或者pull并不会删除这个branch。运行git branch -a也不能看出这个branch被删除了。这时候需要运行

$ git remote show origin
* remote origin
  Fetch URL: git@github.com:xxx/xxx.git
  Push  URL: git@github.com:xxx/xxx.git
  HEAD branch: master
  Remote branches:
    master                 tracked
    refs/remotes/origin/b1 stale (use 'git remote prune' to remove)
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (up to date)
这时候能够看到b1是stale的,可以使用git remote prune origin将它从本地repo也去掉。
阅读(1635) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~