1. git status 查看
2. git branch -a
3. git checkout -b temp
4. git add
5. git commit -m
6. gitk --all -a
7. git checkout 0500660911b8a259238ba3deb12331ed55043ffb
8. git checkout -b xxxxxxxx
9. git branch -D xxxxxxxx
git fetch origin xx 取:origin/xx
git rebase FETCH_HEAD 合併分支
=========================================================
commit
git commit -m ""
pull
git pull
git fetch origin xxxx
git rebase FETCH_HEAD
git push -n
git push
=========================================================
git branch -a //先看看本地/遠程有哪些分支
git branch b1 //在本地新建 分支 b1
git checkout b1 //切換到本地分支 b1
git checkout -b bb22 //新建本地分支bb22,並切換到分支bb22
(遠程分支,位於服務器上的分支; 本地分支,位於本地git倉庫上的分支)
1, 長期存在的遠程分支:
master,
各項目分支(如:pad1024*600, pad800*480, pad-room, pad-outside)
2, 短期本地分支: bugfix, feature,... 工作完成後,merge到某長期遠程分支後,刪除此分支,不推送到遠程倉庫,
二、 git工作流程:
git clone [email protected]:gittest.git 後,
git branch -a (查看本地分支、遠程分支, 最前面帶*號的是 “當前分支”,編輯代碼總是在“當前分支”上進行的)
默認會在本地checkout了master分支,
大致流程:
1、 按工作內容,按項目,checkout一個項目分支:
git checkout -b b2 remotes/origin/b2
(checkout遠程分支b2到本地分支b2,並切換到本地分支b2)
2、 新建一個本地分支,如bugfix分支(git branch bugfix),
切換到此分支,git checkout bugfix,
在本地分支bugfix上修改、提交,最後修改經過測試通過後,再merge到 本地的項目分支b2,
git checkout b2 //切換到本地 項目分支
git merge bugfix //合併bugfix分支到 本地項目分支b2,(工作內容在本地bugfix分支中)
注意查看信息,可能會產生衝突。merge成功後,可以刪除本地臨時分支:git branch -d bugfix
3、push本地的項目分支b2到遠程倉庫,
git push origin b2
=======================================================================================
git圖形化工具:
linux下圖形化git工具: git-gui
sudo apt-get install gitk git-gui
sudo cp -a /usr/lib/git-core/git-gui /usr/bin/
運行:$ git-gui (在ubuntu本地的命令行下)
windows下圖形化git工具 TortoiseGit, http://code.google.com/p/tortoisegit/,
需安裝兩個軟件,我這裏下載有。
兩款工具軟件界面差不多,在文件管理工具中,找到本地git倉庫目錄,右鍵, git...
(注意:圖形化工具可能在後臺搜索git倉庫,導致電腦速度變慢或內存不足現象)
git用戶在自己的ubuntu命令行下運行 ssh-keygen,生成密鑰,密碼設置可設也可不設。
(特別注意:若原來已經生成過公私密鑰,需要改本次保存的文件名,否則會覆蓋掉原有的,造成以前的密鑰丟失。)
將 /home/xxx/.ssh/id_rsa.pub文件用郵件發送給git管理員。
從git倉庫下載代碼:
git測試學習倉庫:
$git clone [email protected]:gittest.git
成功後會生成目錄 gittest
建議先下載這個倉庫,測試。
tt:
$git clone [email protected].:**/testgit
tt:
$git clone [email protected]:*/test.git
---------------------------------------------------------------------------------
git簡單使用,下載代碼後,
例如修改文件aa.c,保存後,
$git status
可以看到當前git倉庫狀態,注意,修改過的文件名會列出來。
$git add aa.c
$git commit -m "some modify info, log"
$git log //可以看到你剛纔的修改
現在修改還在本地。
將剛纔的 提交(commit) 保存到git服務器上: $git push
看到別人的修改: $git pull
git push origin tt:xx
================================================================
1.
*origin(remote) 是Repository的版本
*master(branch) 是local端,正在修改的版本
所以平時沒事不要用origin,如果用了,可通過 git reset -hard恢復到沒修改的狀態
2.git新增檔案
>git add . #將資料先暫存到本地,add之後在新增資料,此次commit不會含在裏面
>git add filename
>git add modify-file #修改過的檔案也要add,不然commit要加上-a參數
>git add -u #只加修改過的檔案,新增的檔案不加入
>git add -i #進入互動模式
3.git 刪除檔案
>git rm filename
4.git 修改檔案,搬移目錄
>git mv filename new-filename
5.git status 查看當前檔案狀態
6.git commit
>git commit
>git commit -m ‘commit message’
>git commit -a -m ‘commit message’ #將所有修改過的檔案都commit,但是新增的檔案要先add .
>git commit -a -v #-v可以看到檔案的哪些內容被改動了,-a把所有修改的檔案都commit
7.產生新的branch
>git branch #列出目前所有的branch
>git branch new-branch #產生新的branch(new-branch),若沒有特別指定,會有目前所在的branch/master直接複製一份
>git branch new-branch master #由master產生新的branch(new-branch)
>git branch new-branch v1 # 由 tag(v1) 產生新的 branch(new-branch)
>git branch -d new-branch # 刪除 new-branch
>git branch -D new-branch # 強制刪除 new-branch
>* git checkout -b new-branch test # 產生新的 branch, 並同時切換過去 new-branch
>git branch -r # 列出所有 Repository branch
>git branch -a # 列出所有 branch
8.git checkout 切換 branch
* git checkout branch-name # 切換到 branch-name
* git checkout master # 切換到 master
* git checkout -b new-branch master # 從 master 建立新的 new-branch, 並同時切換過去 new-branch
* git checkout -b newbranch # 由現在的分支爲基礎, 建立新的 branch
* git checkout -b newbranch origin # 由 origin 的基礎, 建立新的 branch
* git checkout filename # 還原檔案到 Repository 狀態
* git checkout HEAD . # 將所以檔案都 checkout 出來(最後一次 commit 的版本), 注意, 若有修改的當案都會被還原到上一版. (git checkout -f 亦可)
* git checkout xxxx . # 將所有當案都 checkout 出來(xxxx commit 的版本, xxxx 是 commit 的編號前四位), 注意, 若有修改的當案都會被還原到上一版.
* git checkout — * # 恢復到上一次 Commit 的狀態(* 改成檔案名, 就可以只恢復那個檔案)
9.git diff #查看修改的內容
10.git merge 合併分支
其他常用命令:
git show [commit version] #顯示某一次commit的記錄
git blame [文件名] #顯示該文件的修改歷史
git log [commit version] #顯示所有的commit歷史記錄
我的簡單git使用方便自己查看:
git branch #查看當前在哪個分支下
git status #查看狀態
git add . #快速添加全部修改,不必單個文件逐一添加
git commit -m "new order" #提交到本地
git checkout master
git pull #這時將master拉回了本地(下載服務4代碼)
git checkout -b ordertest #在master建分支,此分支和master代碼一樣
git merge order #合併order
如果有衝突,在此解決衝突再次add commit merge
git push #提交到服務器
注意:git diff 不帶路徑參數將查看所有文件的修改
git add . 在文件很多時,可以一次將全部文件添加以待提交(commit), 但刪除文件需要使用git rm app/../user.rb,路徑參數不能省略
在push之前必須git pull命令, 否則可能覆蓋別人的修改
還想繼續在order下開發,則checkout order
merge ordertest