git 小白的基礎操做

起步

在執行 git pull / push 時,須要相應的用戶權限,若是使用遠程倉庫的 HTTPS 地址,則每次同步都須要輸入用戶名密碼。 所以,從安全性和便利性的角度考慮,應當始終使用遠程倉庫的 SSH 地址。 這裏添加公鑰和私鑰的方法:html

運行如下命令,一直回車git

ssh-keygen -t rsa -b 4096github

將 pub 公鑰的內容粘貼到線上網站的後臺安全

cat ~/.ssh/id_rsa.pub服務器

參考博客:gb.yekai.net/concepts/ss…ssh

作些操做

拉取:

  1. 拉取代碼時不指定分支,直接拉取的時master下面的代碼 git clone URL/SSHgitlab

  2. 指定分支,拉取分支下的代碼 git clone -b dev_jk URL/SSH 這裏的dev-jk就是分支,URL/SSH爲源碼的倉庫地址post

提交:

git add . //跟蹤文件 git commit -m」提交註釋」 //提交更新 能夠在提交代碼以前檢查文件的狀態git status,看是不是全部的文件都已經被跟蹤(放入了暫存區)測試

推送:

git push origin 本地分支名:遠程分支名fetch

origin - 這是 Git 給你克隆的倉庫服務器的默認名字

可是 push 以前要先將別人在你 clone 以後推送的代碼拉取下來併合併到本身的代碼裏以後才能 push,不然服務器會拒絕你的操做

也就是:

git pull <遠程主機名> <遠程分支名><本地分支名>

取回遠程主機某個分支的更新,再與本地指定的分支合併

勤快謹慎的人能夠這樣寫:git pull = git fetch + git merge

git fetch <遠程主機名> <遠程分支名><本地分支名>:訪問遠程倉庫,從中拉取全部你尚未的數據,執行完成以後,你將會擁有那個遠程倉庫中全部分支的引用,能夠隨時合併和查看。注意它不會自動合併或修改你當前的工做,必須本身手動將其合併:git merge <本地分支名>:合併數據到本地分支

Merge dev 分支到 uat 環境,再到 master 環境: 必定要當開發分支上提交的代碼測試完畢以後,肯定沒問題以後,才能merge到其餘分支上。通常這個步驟都是老大作,可是遇到一些小需求當測試告訴你能夠merge到下一階段的分支上的時候。你能夠本身合併一下 git checkout [uat] //切換到你要合併的分支上 git branch -a //查看本地有的分支

通常切換到分支以後,要在拉取一下當前分支上的最新代碼,上面的pull操做,防止提交代碼的時候出現衝突

git merge dev //將Dev分支合併到當前分支 git push //合成以後將代碼push到遠程分支上 在公司項目中將其餘分支的代碼合併到 master 分支和其餘 merge 方式不一樣,須要提合併申請請求給項目的負責人,待負責人 review 代碼以後再進行合併。不一樣的代碼存儲倉的提交合並請求的叫法不一樣,gitlab 的請求是叫 merge request(MR)。 github 和 碼雲是叫 pull request(PR)。

分支:

當新開始一個項目由於不少時候不能直接將代碼提交到 master 分支上去,這時候就須要新建一個分支,將本地的代碼提交到新建的分支上面。等分支上面的代碼測試經過,再由老大 mergemaster 分支上去。 具體實現:

  • 狀況一:線上還未建立分支:本地建立分支後推送到線上去 新建分支並切換到此分支:git checkout -b [dev] //等於兩條語句:git branch [dev]git checkout [dev] 推送分支到遠程代碼庫: git push origin [dev]

  • 狀況二:線上已經建立好分支,本地須要關聯到線上的分支 新建分支並切換到此分支並將本地分支 dev 關聯到遠端的 dev1git checkout -b [dev] origin/[dev1]

有時候這種方法可能會出錯,所以能夠謹慎詳細的使用: 先 git fetch origin 遠程分支名:本地分支名,新建分支並與遠端分支關聯。而後再切到這個分支上:git checkout 本地分支名, 注意分支名字要和線上的分支名相同,相同的狀況下能夠直接 git push,會將代碼推送到遠端和如今分支名相同的分支上,若是不相同就須要將分支名寫徹底:git push origin 本地分支名:遠程分支名。固然這時候也可使用 git branch --set-upstream-to=origin/[遠程分支名] [本地分支名]

而後就能夠在當前分支上進行開發,而後進行推送。和上面的執行過程相同

須要注意的是,噹噹前分支的工做結束以後,而且進過測試成功合併到master分支以後,要及時將本地的分支和遠端的這個分支刪除了,先刪除本地分支再 push 到遠程服務器。

刪除:

  • 刪除本地分支:git branch -d [dev] ,注意的是若是分支代碼未合併執行這個操做 git 會報錯而且不會進行刪除,這時你能夠選擇使用 git branch -D [dev] ,強制刪除這個分支。(建議不要使用)
  • 刪除遠程分支:git push origin :[dev] 或者能夠是: git push origin --delete [dev]

暫存:

當須要提交代碼的時候,當前改動的一部分不須要提交,有兩種實現方法:

  1. 在 git add 的時候忽略掉不須要提交的文件,不進行跟蹤,後面的操做正常
  2. 先將文件放進暫存區裏面,git stash,展現暫存區裏的暫存記錄:git stash list,彈出第一條 git stash pop

使用 git 的暫存功能還能解決在開發過程當中可能發生的由於不注意產生的小問題,也就是寫錯分支怎麼辦?

若是中間沒有出現差錯,整個的實現步驟能夠是如下簡單的幾步:

  1. git clone -b dev URL/SSH
  2. git checkout -b 分支名字
  3. git push origin 分支名字
  4. git branch --set-upstream-to=origin/[遠程分支名] [本地分支名]
  5. 修改代碼
  6. git add .
  7. git commit -m 提交信息 (這裏提交信息必須寫點兒什麼,否則的話就提交不了)。
  8. git pull / git pull origin dev:dev
  9. git push / git push origin dev:dev

涉及到的指令的詳細解釋(參考連接):

git fetch

git branch

git stash

相關文章
相關標籤/搜索