Tag Archives: Git

How to prevent git to commit a file, .gitignore not working

之前的網誌介紹了我把學習 NodeJs的程式碼 Open source了到 GitHub
https://github.com/sharechiwai/NodeExpress
現在發現有小小的難題..
就是很多的Web Application 都有使用第三方的API
如果直接把那些 API KeyCommitGitHub上那便會所有人都能我申請的 API Key
不太安全吧..
所以我便做了很多research看看怎樣解決這個問題.
很多網友都說只要修改 .gitignore 加上那個不想commit的檔案路俓便可以了
.gitignore config
但是試了很久也不成功 在GitHub Application上還是可以看到 那個config.js
config.js still showing on github to be commit

最後終於找到了為什麼 .gitignore not working 和解決方法

加了檔案路徑到.gitignore 都不能解決
是因為.gitignore 只能處理untrack的檔案..
即是如果你的檔案之前 commit過.當那個檔案有任何改變是Git都會說有檔案可以commit

解決方法..
我們需要使用 command prompt 在這個Git的 repository 上輸入以下的指令
git update-index –assume-unchanged [File path / 檔案路徑/ 如果只有指定檔案, 可以加檔案名/ 否則便會整個資料夾都不會 commit]

e.g.

git update-index --assume-unchanged config/config.js

Git command to make git treat the specific file/folder unchanged
得左
config.js not showing on git application

有時候大家想Git再次commit這個檔案..可以在command prompt上使用這個指令
git update-index –no-assume-unchanged [File path / 檔案路徑/ 如果只有指定檔案, 可以加檔案名/ 否則便會整個資料夾都不會 commit]

E.G.

git update-index --no-assume-unchanged config/config.js

Git command to ensure the file/folder are tracked
Hope you find it useful

‘ssh’ is not recognized as an internal or external command – 如何在Windows 命令提示符 上使用 SSH

很多時候網上的教學都是使用LinuxMacBash
有很多時候都會使用到SSH

最近嘗試在Windows 的Command Prompt上使用 SSH時出現以下的錯誤信息
‘ssh’ is not recognized as an internalor external command, operable program or batch file
SSH is not recognized

如何可以在Windows 命令提示符 上使用 SSH
解決方法十分簡單
相信很多Developer都有使用Git
如果唔有的話可以到以下網址 下載及安裝Git
https://git-scm.com/downloads

安裝完成後..便可以在WindowsEnvironment Path 環境變數上的 “Path“變數上加上
Git\usr\bin 的路徑
因為這個路徑上存有很多有用的工具/程式
E.G
C:\Program Files\Git\usr\bin
Git User Bin Path

按下”確定“便可以了
Add Environment Variable on Windows 10 for Git User Bin

之後當我們在WindowsCommand prompt上執行 SSH
Successfully Run SSH on Windows
Hope you find it useful

BitBucket SoureTree – The server’s host key is not cached in the registry

今天嘗試使用SourceTreePush一個新的Git Repos
誰不知 Push了很久都是停留在同一個output Windows
SourceTree Output Windows - The server's host key is not cached in the registry

git -c diff.mnemonicprefix=false -c core.quotepath=false push -v --tags --set-upstream origin master:master
Pushing to git@bitbucket.org:sharechiwai/SampleCode.git

The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 97:xxxxxxxxxxxxxxxxxxxxxxx
If you trust this host, enter "y" to add the key to
PuTTY's cache and carry on connecting.

If you want to carry on connecting just once, without
adding the key to the cache, enter "n".
If you do not trust this host, press Return to abandon the
connection.

做了一會research之後終於找到解決方法了

解決方法:
大家可以使用Command Prompt之後輸入以下指令到 Source treePutty資料夾

cd "C:\Program Files (x86)\Atlassian\SourceTree\tools\putty"

之後執行以下指令到連接到 BitBucket

plink git@bitbucket.org

他便會出現上面的問題..叫你把Host Key CachRegistry
BitBucket SourceTree - The server's host key is not cached in the registry Solutions
完成後再嘗試使用Source Tree 去Push
這一次很快便可以把這一個Local Repos Push上了BitBucket

Hope you find it useful

VS2013 – An error occurred. Detailed message: An error was raised by libgit2. Category = Net (Error). This transport isn’t implemented. Sorry (Fixed)

今天嘗試使用 把程式碼 CommitBitbucket
之前介紹的AppHarbor 可以把你在BitBucket上的 Source Code Compile 和Deploy 到你的AppHarbor Account
十分方便..

AppHarbor – Free hosting for ASP.Net/ ASP.Net MVC – 免費ASP.Net/ ASP.Net MVC寄存服務

我先在BitBucket 建立一個 C#Project/repository

之後使用Tortoise for Git來把在BitBucketRepository Clone / 複製到電腦上

Get BitBucket SSH URL to clone the project repository

之後便用Visual Studio 2013 建立一個新的Project 儲存在 那個資料夾上..

當大家再次開啟這個Project的時候便會發現 在檔案上 Right Click / 按右鍵時 會多了一個 “Commit“的選項

Commit option on visual studio

如果大家有連接到TFS 的專案時..會有 “Check-in” 的選項的..

之後便會去到 以下的這個畫面.. 大家可以 Commit 和把已經 commitSource Code Pushremote Repository

Commit and Push Visual Studio 2013

誰不知.. 當我按 “Push” 這個按鈕後便出現以下的錯誤信息..

An error occurred. Detailed message: An error was raised by libgit2. Category = Net (Error).
This transport isn’t implemented. Sorry
An error occurred. Detailed message: An error was raised by libgit2.  Category = Net (Error). This transport isn't implemented. Sorry

做了一會兒research 之後發原來Visual Studio 2012 使用Git時也有相同的問題
可惜可以在Visual Studio 2012上使用的Visual Studio Extension不能在Visual Studio 2013上使用

如果你是使用Visual Studio 2012 的話..
可以嘗試下載和 安裝 Visual Studio Tools for Git
http://visualstudiogallery.msdn.microsoft.com/abafc7d6-dcaa-40f4-8a5e-d6724bdb980c

如果你是使用Visual Studio 2013 的話 可以嘗試以下的方法

解決方法..原來Visual Studio 2013 是支援用HTTPS 來 連絡 到GIT
通常很多人都會使用SSH

所以大家可以到你的 BitBucket / GIT/ CodePlex 上的 GIT Repository
之後選擇以 HTTPS的方法來 Clone / 複製你的 Repository 到你的電腦上
BitBucket HTTPS option
Git Repository by using HTTPS

當你再次開啟Visual Studio 2013 按 “Push” / “Pull” 或 “Sync” 的話
Visual Studio 應該會彈出一個登入的windows 讓你轉入 BitBucket / GIT/ CodePlex
的Username / Password [請注意..你的 Password 可能和你SSH 的Passphrase 是不同的…所以可能會輸入錯的密碼]

BitBucket request for login information
BitBucket Request for User Credentials inside Visual Studio 2013

成功登入後Visual Studio便會 “Push” / “Pull” 或 “Sync” 到 BitBucket / GIT/ CodePlex /TFS 上了
Repository is already up to date. No changes to pull
Repository is already up to date. No changes to pull

現在便可以在Visual Studio 2013 上使用 Git 來 Commit “Push” / “Pull” 或 “Sync” 你的 Source codeBitBucket / GIT/ CodePlex /TFS 上了

Happy Coding

AppHarbor – Free hosting for ASP.Net/ ASP.Net MVC – 免費ASP.Net/ ASP.Net MVC寄存服務

今天想和大家介紹一個Cloud Service /雲端服務
他們可以幫你免費Host你的 ASP.Net/ ASP.Net MVC 網頁
AppHarbor
https://appharbor.com/
大家可以使用他們的服務來
他的好處是大家可以使用Git把Source Code commitAppHarbor上..
AppHarbor 的Build Server 會Compile 你的程式碼..
之後Deploy 到特定網址 [xxx.apphb.com]
我的網圵是 http://sharechiwai.apphb.com..
主要是用來測試程式碼…
和用來 Host 我的 ASP.Net MVC Website / 和測試其他新東西 [因為自己可以不用安裝 =)] 和這個Blog 相關的Demo..

除了支援.Net 之外..
他們還有很多Add-on 可以給大家使用..
E.G.
AppHarbor Add-on
使用basic 的服務是免費的
大家亦都可以把你們的Source Code 從 Bitbucket / GitCodePlex 上 發佈到 Appharbor
如果想有自定的URL/ SSL和其他東西..那便要付費了
AppHarbor Pricing

Hope you find it useful.