Archive for 九月, 2009

過sshd傳送檔案-scp

只要有sshd(且開放使用此功能)的機器,就可以用scp傳送檔案,其實跟一般cp的指令下法也差不多,不過重點在於domain name後面要加冒號:再接路徑名稱(冒號結束開始就可以當作是home directory了,換言之:

scp filename username@domain:

就是傳送filename到username在domain機器上的家目錄底下…當然冒號後要下絕對路徑也是OK的

發表迴響

Git 和 Git Server 的兩三事

由於工作需要,上好奇心花了一點時間來了解研究git從建立server到repository的完整過程…
其中發生了一些不是不能理解但是很難接受的情況*_*

最大的重點應該是在於說新建了一個repository後的事情吧

  1. 要一個client去clone一份空的下來(會有警告)
  2. 做些新增檔案動作(例如新增一個README之類的,沒試過沒更動)
  3. git add . 將新增檔案列入commit
  4. git commit -a 會看到comment裡面有寫是Initial commit
  5. git push origin master推回去做初始化

常用技巧:

git clone 複製一個既存的(遠端)repository回來
git add . 加入所有檔案到commit清單中
(含新建立檔案不含刪除)
git add -u

將刪除的檔案列到commit清單中
(功能之一,應該有更完整敘述)

git commit -a commit 所有編輯
(未add到的新增檔案不會列入計算commit)
git branch [branch名] 打一個新的branch
git commit –amend 修改最後一次commit

基本rebase程序:

  1. git checkout [branchname] (切換到branchname)
  2. git status (確認On branch [branchname],用git branch看*也可以)
  3. 在branch上做修改儲存
  4. git add . (如此會加入所有已知與新增檔案但不會刪除檔案,加入所有已知刪除檔案可用git add -u)
  5. git commit -a
  6. 寫入註解
  7. git checkout master (切回master)
  8. git pull (更新master到最新)
  9. git checkout [branchname] (再切回branchname)
  10. git rebase master (用更新過的master來rebase)

checkout還原檔案若是遇到跟檔名同名的branch時,用:

git checkout -- filename

解決。

關於各種還原方式的比較可以參考這裡

要拿既有的資料夾來塞進新的repository的話:

  1. 在server端建立新的空repository
  2. git init
  3. git remote add origin git@……:xxx
  4. git pull origin master
  5. 解決confict(如果是第二、三台進行整合的才會有)
  6. git add .
  7. git commit -a
  8. git push(要加origin master?)

若是要整合第二三台以上的同性質資料夾進同個repository,就重複執行2~8(1不用做因為已經存在了)

參考資料:(重複性質很高,而且不是全部都有用到,但是多少都有幫到忙/覺得會用到)

Pro Git 2.4 基礎 撤銷操作
http://progit.org/book/zh/ch2-4.html

revert single file
http://norbauer.com/notebooks/code/notes/git-revert-reset-a-single-file

Reverting Changes In Git
http://www.xerxesb.com/2009/reverting-changes-in-git/

Git官網
http://git-scm.com/
Documentation
http://git-scm.com/documentation

gitosis.git
http://eagain.net/gitweb/?p=gitosis.git;a=summary

[Geek] Git and Gitweb
http://walkingice.twbbs.org/blog/?p=504

git-config(1) Manual Page
http://www.kernel.org/pub/software/scm/git/docs/git-config.html

Git-vim
http://github.com/motemen/git-vim/tree/master

Git 中文教程_1
http://blog.sina.com.cn/s/blog_4ef8be9f0100f0gi.html
Git 中文教程_2
http://blog.sina.com.cn/s/blog_4ef8be9f0100f0gk.html

git-daemon(應該是用不上了?)
http://linuxreviews.org/man/git-daemon/

Git起步
http://www.fwolf.com/blog/post/429

Git 初學筆記 – 指令操作教學
http://plog.longwin.com.tw/my_note-unix/2009/05/19/git-learn-initial-command-2009
Git 基礎設定 (帳號的環境參數設定)
http://plog.longwin.com.tw/my_note-unix/2009/05/15/git-initial-env-setup-2009

Git 版本控制系統 (1) by ihower
http://ihower.idv.tw/blog/archives/2591

Git 版本控制系統(2) 開 branch 分支和操作遠端 repo. by ihower
http://ihower.idv.tw/blog/archives/2620

在Ubuntu Server上安装Git
http://blog.douhua.im/2009/05/19/ubuntu-server-git/

Git 中文教程
http://www.bitsun.com/documents/gittutorcn.htm

國網中心Git >> 原始碼管理
http://www.qweruiop.org/nchcrails/posts/49

使用Git與Github管理軟體開發專案
http://www.dotblogs.com.tw/billy3321/archive/2009/02/06/7064.aspx

Hosting Git repositories, The Easy (and Secure) Way
http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way

使用 gitosis 管理 git 服务器
http://blog.3gcomet.com/article.asp?id=417

Comments (1)

dd-wrt永久修改MAC

由於有時刷了ddwrt後MAC會變成00:11:22:33:44:55之類的東西,就算用nvram指令去改一reset後又會跑掉,後來在網路上學到了用直接寫入cfe的方法修改。
(整個Flash被稱為wholeflash,除了平常泛稱的韌體部分以外還包括cfe、nvram、kernel等,MAC Address則被cfe和nvram保存。然而nvram中的資料也是從cfe裡面去取用計算出來的,每次reset後就會從cfe重抓一次,所以治本的方式就是修改cfe)

修改cfe的方法有硬體連接(JTAG)線連上console修改,但是費工又費神,所以我們用簡單輕鬆寫意的方式(過telnet,過ssh應該也可以)來完成。

1. 登入ddwrt,輸入cat /proc/mtd,應該要出現:

dev: size erasesize name
mtd0: 00040000 00010000 “cfe"
mtd1: 003b0000 00010000 “linux"
mtd2: 002bd000 00010000 “rootfs"
mtd3: 00010000 00010000 “nvram"
mtd4: 00010000 00010000 “ddwrt"

(由此可知,cfe是放在mtd0中)

2.輸入:dd if=/dev/mtd/0 of=/tmp/cfe.bin,把cfe先備份出來。應該要出現:
512+0 records in
512+0 records out

3.用sed把cfe中的MAC Address改掉,指令:

sed "s/00:11:22:33:44:55/66:77:88:99:00:11/g" /tmp/cfe.bin > /tmp/cfe.new

就是00:11:22:33:44:55換到66:77:88:99:00:11,熟悉*nix字串處理的話應該很容易理解

4.寫回mtd,指令:

mtd write /tmp/cfe.new cfe

不行的話用

mtd unlock cfe
mtd write -f /tmp/cfe.new cfe

成功應該會出現

Writing from /tmp/cfe.bin to cfe … [w]

完成後只要reset或者回復default,三個MAC就都會更新了(其中有兩個是算出來的,所以我們只改一個就等於改三個)

參考部分不准轉載也不給trackback,那我消化吸收再PO出來應該可以吧…?
參考網址:http://blog.hutiecheng.com/read.php?93

發表迴響

Windows下的grep

今天在被人家求救時找到的:findstr

簡單來說可以直接用pipe送給他,基本用法跟*nix下grep相同(直接空白�要找的字)
詳情可看trackback

發表迴響

« Newer Posts