git 不同於svn的地方時他擁有本地庫,不必像svn那樣必須在網絡下同步。
git基本工作流程:
- git clone:將遠程的Master分支代碼克隆到本地倉庫
- git checkout:切出分支出來開發
- git add:將文件加入庫跟蹤區
- git commit:將庫跟蹤區改變的代碼提交到本地代碼庫中
- git push: 將本地倉庫中的代碼提交到遠程倉庫
git 分支
- 主分支
- master分支:存放隨時可供生產環境中的部署的代碼
- develop分支:存放當前最新開發成果的分支,當代碼足夠穩定時可以合並到master分支上去。
- 輔助分支
- feature分支:開發新功能使用,最終合並到develop分支或拋棄掉
- release分支:做小的缺陷修正、准備發布版本所需的各項說明信息
- hotfix分支:代碼的緊急修復工作
------------------------------------------------
git branch -r: 查詢遠程有多少分支
git branch -a:查詢遠程和本地有多少分支
git branch :查詢本地有多少分支
git branch xxx : 創建分支(如果分支名已經存在報:fatal: A branch named 'advance' already exists.)
git clone 克隆遠程分支到本地
git checkout 本地分支名:切換本地分支
git checkout -b xxx -t origin/xxx :創建並切換分支並和遠程分支關聯
git branch -d xxx :刪除本地分支(首先切換到別的分支,再刪除)
git branch -D xxx :強制刪除本地分支(首先切換到別的分支,再刪除)
---------------------------------------------------
git remote:獲取遠程主機名
git remote -v :查看遠程
git remote rm origin 刪除遠程origin
-----------------------------------------------------
git status:檢查項目狀態 // 未add的文件為紅色 已經add的文件為綠色
將修改內容提交到緩沖區
git add . .為將全部修改提交
git add src/test/java/com/alihealth/drugsupervision/basicservice/ZookeeperTestCase.java 將具體的文件提交
git checkout -- xxx,xxxx 取消本地工作區的修改,把紅色的修改取消了。
git commit -am "備注" :提交更新到本地庫 (-a 表示不用git add 文件,add並提交)
git pull <遠程主機名> <遠程分支名>:<本地分支名>
1、先git stash 將本地保存下
git stash save "備注" //養成備注習慣,可以避免許多問題
git stash list 查看暫存列表
git stash apply stash@{$num} //num表示第num+1個,0表示第一個 。個人覺得此處用idea 界面unstash操作,好處是解決與本地文件沖突;
2、git pull 如果是當前本地分支可不填本地分支名
git fetch和git pull的概念:
git fetch是將遠程主機的最新內容拉到本地,用戶在檢查了以后決定是否合並到工作本機分支中。
而git pull 則是將遠程主機的最新內容拉下來后直接合並,即:git pull = git fetch + git merge,這樣可能會產生沖突,需要手動解決。
git push <遠程主機名> <本地分支名>:<遠程分支名>
場景:
結果: