1. 程式人生 > 其它 >cd返回上一 git_git

cd返回上一 git_git

技術標籤:cd返回上一 git

初始化

第一次初始化git,提交大量專案檔案,最好用命令列,不容易崩或者損壞檔案


情景

  1. 專案已經有了
    1. 但只是本地有,但還沒git版本控制,想通過git進行版本控制
    2. 但只是遠端有,有git版本控制了,想獲取別人的專案,加入一起開發
  1. 本地和遠端專案都沒,想先在git上面建立專案,有了版本控制後再開幹

本地專案已經有了,但還沒git版本控制,想通過git進行版本控制

  1. 備份專案檔案
  2. 控制檯開啟
cd [path]
  1. 初始化git
git init

  1. 新增 .gitignore檔案
  2. 提交本地專案檔案
git commit -m "fuck you"
  1. 新增遠端伺服器地址
git remote add orgin [remote address]
  1. 強制推送本地檔案
git push -u --force origin master

專案已經有了,但只是遠端有,有git版本控制了,想獲取別人的專案,加入一起開發

本地和遠端專案都沒,想先在git上面建立專案,有了版本控制後再開幹

  1. 控制檯開啟
md [path]
cd [path]
  1. 克隆遠端專案
git clone [remote address]

基本操作


快取內容到暫存區

快取單個檔案

git add "fucker.txt"

快取所有檔案

git add -A

更新快取內容

git commit -u

提交

基本提交

git commit -m "fuck you"

追加提交

git commit --amend

拉取

git pull origin master

推送

git push origin master

狀態查詢

git status

差異比較

git diff "fucker.txt"

分支


每次提交,git都把它們串成一條時間線,這條時間線就是一個分支。截止到目前,只有一條時間線,在git裡,這個分支叫主分支,即master分支。HEAD嚴格來說不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是當前分支。

一開始的時候,master分支是一條線,git用master指向最新的提交,再用HEAD指向master,就能確定當前分支,以及當前分支的提交點:

ed9099b27c2d1788a798d024e7b133fd.png

每次提交,master分支都會向前移動一步,這樣,隨著你不斷提交,master分支的線也越來越長。

當我們建立新的分支,例如dev時,git新建了一個指標叫dev,指向master相同的提交,再把HEAD指向dev,就表示當前分支在dev上:

73e7c6d2b6ef0d2c137b154191277e56.png

你看,git建立一個分支很快,因為除了增加一個dev指標,改改HEAD的指向,工作區的檔案都沒有任何變化!不過,從現在開始,對工作區的修改和提交就是針對dev分支了,比如新提交一次後,dev指標往前移動一步,而master指標不變:

c2932cf6f0cbeba127afcdeedc8e6847.png

假如我們在dev上的工作完成了,就可以把dev合併到master上。git怎麼合併呢?最簡單的方法,就是直接把master指向dev的當前提交,就完成了合併:

af78848984d46636a65f9a112ac6a4d1.png

所以git合併分支也很快!就改改指標,工作區內容也不變!合併完分支後,甚至可以刪除dev分支。刪除dev分支就是把dev指標給刪掉,刪掉後,我們就剩下了一條master分支:

7670d6b2abef0c605977d57ad3818141.png

基本操作

建立分支

git checkout dev

合併分支

git merge master

刪除分支

git branch -d dev

SourceTree的使用