01.17 GitHub|清晰理解本地目錄、暫存區、本地倉庫、遠程倉庫的交互

GitHub 是一個在線平臺,旨在促進在一個共同項目上工作的個人之間的代碼託管、版本控制和協作。通過該平臺,無論何時何地,都可以對項目進行操作(託管和審查代碼,管理項目和與世界各地的其他開發者共同開發軟件)。GitHub 平臺為開源項目和私人項目都提供了項目處理功能。

GitHub is a code hosting platform for version control and collaboration. It lets you and others work together on projects from anywhere.

Github是一個版本控制和項目合作的代碼託管平臺。它讓你和其他任何地方的夥伴共同進行一個項目。

Git是分佈式管理的版本控制器,它的特點是版本控制可以不依賴網絡,對分支和合並有更好的支持。

Git每一個終端都是一個倉庫,客戶端並不只提取最新版本的文件快照,而是把原始的代碼倉庫完整地鏡像下來。每一次的提取操作,實際上都是一次對代碼倉庫的完整備份。

Git工具(git bash)是一個命令行工具,可用於操作本地Gig倉庫及與遠程GitHub倉庫的交互。

GitHub|清晰理解本地目錄、暫存區、本地倉庫、遠程倉庫的交互

git對文件的操作都是在四大域上進行的(工作目錄,暫存區,倉庫,遠程倉庫),文件可以在四大域內與四大域間進行各種操作。(有一個例外,進行“git stash”系列操作時,文件可能被保存到四大域外的堆棧中)

GitHub|清晰理解本地目錄、暫存區、本地倉庫、遠程倉庫的交互

1 新建遠程倉庫和本地倉庫

1.1 github上新建遠程倉庫https://github.com/reachone01/ency

1.2 本地項目文件夾右擊,Git Bash Here(或者用cd命令切換到此文件夾路徑);

1.3 $ git init (會在此路徑新建一個隱藏屬性.git文件夾,此路徑以master為別名)

執行git init後,bash提示符改變為:

wwuhnwu01@wwuhnwu01 MINGW32 /d/wwuhn.github.io (master)

bash提示符字符串暫時不會包括(master),要操作到後一步才會有,如果有,表示此路徑下有了.git文件夾(本地倉庫,或叫索引庫,隱藏屬性),最好刪除此文件夾後再操作。

1.4 $ git add . (工作目錄→暫存區(Index))

1.5 $ git commit -m "initial" (暫存區(Index)→本地倉庫(History))

1.6 $ git remote add dst https://github.com/reachone01/ency.git (與遠程倉庫建立一個叫dst的連接)

1.7 $ git push -u dst master (本地倉庫(History)→遠程倉庫)

如果參數是-f,則是強制上傳,遠程倉庫的內容會被強制覆蓋。

2 在遠程倉庫中新增文件夾

2.1 本地文件夾push

2.1 遠程倉庫新建一分支dev

要理解分支,分支並不是全新的或空白的,而是對master的clone,合併(pull request)時會檢查是否在master的基礎上有更新,才會考慮合併。

如果是自己的個人網站,推薦的做法是新建倉庫,舊的倉庫做為備份,然後更改名稱,刪除不需要的倉庫即可。

2.1.2 本地文件夾右擊,Git Bash Here(或者用cd命令切換到此文件夾路徑);

2.1.3 $ git init (會在此路徑新建一個隱藏屬性.git文件夾,此路徑以master為別名)

2.1.4 $ git remote add dst https://github.com/reachone01/ency.git (與遠程倉庫建立一個叫dst的連接)

2.1.5 $ git pull dst master (遠程倉庫中的文件clone到本地目錄)

需要注意的是,遠程倉庫中相同的文件或文件名會覆蓋掉本地目錄中的文件或文件名。

2.1.6 $ git add . (工作目錄→暫存區(Index))

2.1.7 $ git commit -m "initial" (暫存區(Index)→本地倉庫(History))

2.1.8 $ git push -u dst master:dev (本地倉庫(History)→遠程倉庫)

2.1.9 遠程倉庫pull request

如果兩個分支是分支不同的遞交記錄(entirely different commit histories),是不能合併的(例如完全不同的push -f )。

2.1.10 刪除dev分支

2.2 直接在遠程倉庫上新建文件夾並上傳(可拖曳)

2.2.1 在遠程倉庫新建文件→dir/newfile.txt,即可新建一個dir文件夾;

2.2.2 此時可以點擊上傳按鈕,只能框選文件(不能選擇文件夾),也可直接拖曳文件或文件夾,但不能超過100個。

-End-


分享到:


相關文章: