Git — The stupid content tracker。
用途:版本控制
流程:取代碼 → 每次工作前更新代碼到最新版本 → 修改代碼 → 提交代碼到服務器
git下載地址:git-scm.com/download (有win、Linux、Mac對應版本)
設置用戶名與郵箱
git config --global user.name "My Name"git config --global user.email "my@email.com"
上面設置命令中帶了“–global"參數,是全局配置,影響本機上所有的git項目。也可以對一些單獨的項目進行設置,進入要設置的項目目錄,進行設置:
cd dirgit config user.name "My Name"git config user.email "my@email.com"
查看配置:
cat .git/config
創建git倉庫:
mkdir projectcd projectgit init #在當前的目錄下建一個倉庫
檢出倉庫:
git clone git@server:app.git myrepo
查看遠程倉庫:
$ git remote -v
添加遠程倉庫:
$ git remote add [name] [url]
刪除遠程倉庫:
$ git remote rm [name]git push origin master
更新本地代碼到最新版本(需要merge才能合到本地代碼中):
git fetch
合並更新後的代碼到本地:
git merge
更新代碼方式的另一種方法(git pull是git fetch和git merge命令的一個組合):
git pull
修改代碼後,查看已修改的內容:
git diff --cached
將新增加文件加入到git中:
git add file1 file2 file3
所有文件全部加入到git中:
git add .
從git中刪除文件:
git rm file1git rm -r dir1
提交修改:
git commit -m 'this is memo'
如果想省掉提交之前的 git add 命令,可以直接用:
git commit -a -m 'this is memo'commit和commit -a的區別, commit -a相當於:第一步:自動地add所有改動的代碼,使得所有的開發代碼都列於index file中第二步:自動地刪除那些在index file中但不在工作樹中的文件第三步:執行commit命令來提交
提交所有修改到遠程服務器,這樣,其它團隊成員才能更新到這些修改
git push
創建dev分支:
git branch dev
查看項目倉庫中有幾個分支:
git branch//*號為當前所在分支 dev* master
分支切換:
//切換到dev分支git checkout dev
查看master分支和dev分支差異:
git diff dev
合並dev分支到master分支(如果合並發生沖突,需要自己解決沖突):
git merge branchname
解決沖突:
當merge命令自身無法解決沖突的時候,它會將工作樹置於一種特殊的狀態,並且給用戶提供沖突信息,以期用戶可以自己解決這些問題。當然在這個時候,未發生沖突的代碼已經被git merge登記在了index file裡了。如果你這個時候使用git diff,顯示出來的只是發生沖突的代碼信息。在你解決了沖突之前,發生沖突的文件會一直在index file中被標記出來。這個時候,如果你使用git commit提交的話,git會提示:filename.txt needs merge在發生沖突的時候,如果你使用gitstatus命令,那麼會顯示出發生沖突的具體信息。
在你解決了沖突之後,你可以使用如下步驟來提交:
第一步(如果需要增加文件):
git add file1
第二步:
git commit
刪除dev分支:
git branch -d dev
如果要刪除的分支沒有被合並到其它分支中去,那麼就不能用“git branch -d”來刪除它,需要改用“git branch -D”來強制刪除。
將分支推送到遠端倉庫:
git push origin <branch>
刪除遠程分支:
git push origin --delete <branch>
git可以對某一時間點上的版本打上標簽。如在發布某個軟件版本(比如 v0.1等),可以打版本標簽。
列出已有的標簽:
git tag
打標簽:
git tag -a v0.1 -m 'tag version 0.1'
把本地tag推送到遠程:
git push --tags
刪除tag:
git push origin --delete tag <tagname>
顯示commit日志:
git log
不僅顯示commit日志,而且同時顯示每次commit的代碼改變:
git log -p
查看當前倉庫的狀態:
git status
回滾代碼:
git revert HEAD
你也可以revert更早的commit,例如:
git revert HEAD^
銷毀自己的修改
git reset --hard
查看最新版本和上一個版本的差異(一個^表示向前推進一個版本)
git diff HEAD HEAD^
git取消已經緩存的文件(慎用):
git reset
git恢復刪除了的文件,git pull 從git服務器取出,並且和本地修改merge, 類似於SVN up,但是對刪除的文件不管用,恢復刪除文件用
git checkout -f
Global setup: Download and install Git git config --global user.name "imbingdian" git config --global user.email imbingdian@gmail.comNext steps: mkdir projectname cd projectname git init touch README git add README git commit -m 'first commit' git remote add origin git@github.com:bingdian/projectname.git git push -u origin masterExisting Git Repo? cd existing_git_repo git remote add origin git@github.com:bingdian/projectname.git git push -u origin master
Git 常用命令圖示–來源:http://www.cnblogs.com/1-2-3/archive/2010/07/18/git-commands.Html