為git創建遠程倉庫


為git創建遠程倉庫及常用命令介紹

首先生成ssh公鑰:

 

將公鑰添加到git:

 

 

 

 

 

 

 

 

 測試秘鑰是否通過:

 

 

 

 然后就可以到web界面看到標注的地方被綠了:

 

 

 但是我的沒有綠,不知道為啥,難道沒有女朋友的原因嗎?

rm -rf .ssh 重來好幾遍都不行,不知道為啥,得再研究研究。

然后創建項目:

 

 

關聯遠程倉庫:

 新建對應項目的文件夾:

 

 

 找到遠程倉庫地址:(注意是ssh地址)

 

本地創建git版本庫:

 

記錄一下刪除關聯命令:git remote rm origin

推送本地庫內容到遠程庫:(提交到master,是因為當前只有master分支)
git push origin master
注意:需要先把遠程庫內容拉到本地,否則會報錯。忽略特殊文件
git pull origin master

 比如,下面就是血淋淋的教訓:

add是為了添加到暫存區,而commit是為了提交到本地倉庫

 

 

哦,對了,在此之前需要將你的git用戶添加到本地,才能繼續使用:(我好像用email不行,不知道為啥)

 

 可以了。

 

 

 

 

 

原來是上面建立關聯時命令寫錯了, origin寫成了orgin

 

 

 

通過查看遠程倉庫的版本號發現的:

 

 這就要改一下命令了,使得允許本地庫和遠程庫不一樣:

 

粘貼下命令,省的寫錯:git pull origin master --allow-unrelated-histories

 闊以了。

 

然后把添加到本地倉庫的東西推送到遠程倉庫:

 

 

 

 完美。

 

然后添加.gitignore文件,在該文件夾中寫入不想每次都上傳的文件夾env

 

 把新建的目錄名env寫入.gitignore文件中,然后push:

 

 

附一些其他常用的命令:

創建 Git 版本庫

在本地創建 Git 版本庫,需要使用 git init 命令。

首先,你需要新建一個存放版本庫的目錄,然后進入到該目錄所在路徑,然后執行:

git init

然后查看目錄結構中,就可以看到包含有 .git 子目錄,這就說明創建版本庫成功了。

將文件添加到版本庫

要將一個文件納入到版本庫管理,首先要將其添加到暫存區(這里不做深入介紹),然后才能提交到倉庫中。

2.1 將文件添加到暫存區,使用的是 git add

git add Readme.md // 添加單個文件到暫存區 git add . // 將當前目錄下所有修改添加到暫存區,除按照規則忽略的之外

注意:這邊空文件夾是不會被添加到暫存區中的。

將暫存區中的文件,提交到倉庫中。需要使用 git commit

git commit        // 如果暫存區有文件,則將其中的文件提交到倉庫 git commit -m 'your comments' // 帶評論提交,用於說明提交內容、變更、作用等

注意:這邊直接用 git commit 提交,會先彈出添加評論的頁面。

 查看倉庫的狀態

不論我們是新建了文件,將文件加入暫存區,或者其他的修改等等,我們都可以通過:

git status

來隨時查看倉庫中文件的狀態。這個應該是使用 Git 做版本控制過程中,我使用最多的一個命令。

查看倉庫中的具體修改

很經常的,我們對某個文件做了修改,但過不久就忘記了。這時候就可以通過 git diff 來查看具體的修改內容。

git diff    // 查看版本庫中所有的改動 git diff Readme.md // 查看具體文件的改動

查看提交歷史記錄

有的時候,你會需要查看自己做過哪些提交,來回顧自己完成的部分。或者需要尋找某個具體的提交來查看當時的代碼。這里需要用到:

git log // 顯示所有提交的歷史記錄 git log --pretty=oneline // 單行顯示提交歷史記錄的內容

在 git log 的輸出內容中,可以看到每次提交的 ID,是一個 40 位的字符串。

版本回退

有了 git log 來查看提交的歷史記錄,我們就可以通過 git reset --hard 來回退到我們需要的特定版本,然后使用當時的代碼進行各種操作。

git reset --hard HEAD^ // 回退到上一個提交版本 git reset --hard HEAD^^ // 回退到上上一個提交版本 git reset --hard 'commit_id' // 會退到 commit_id 指定的提交版本

回到未來的某個提交

當退回到某個提交的版本以后,再通過 git log 是無法顯示在這之后的提交信息的。但是,通過 git reflog 可以獲取到操作命令的歷史。

因此,想要回到未來的某個提交,先通過 git reflog 從歷史命令中找到想要回到的提交版本的 ID,然后通過 git reset --hard 來切換。

 
git reflog
git reset --hard 'commit_id'

 撤銷修改

撤銷修改同樣包括兩方面的內容,由於倉庫中的文件在提交之前,可能在工作區中,尚未在版本控制范圍內,也可能在暫存區中。

8.1 丟棄工作區中文件的修改

git checkout -- Readme.md    // 如果 Readme.md 文件在工作區,則丟棄其修改 git checkout -- . // 丟棄當前目錄下所有工作區中文件的修改

注意: git checkout -- 中的 -- 是必須的

 丟棄已經進入暫存區的修改

git reset HEAD Readme.md // 將 Readme.md 恢復到 HEAD 提交版本的狀態

在文件未添加到暫存區之前,對想刪除文件可以直接物理刪除。或者通過 git checkout -- file 來丟棄。如果文件已經被提交,則需要 git rm 來刪除:

 

刪除文件

git rm Readme.md // 刪除已經被提交過的 Readme.md

注意: git rm 只能刪除已經提交到版本庫中的文件。其他狀態的文件直接用這個命令操作是出錯的。

分支管理

分支是版本控制系統中很重要的一個概念,在 Git 中新建、合並等分支的操作非常輕量便捷,因此我們會很經常的用到。

1. 查看分支

查看分支使用 git branch

git branch        // 查看本地分支信息 git branch -v // 查看相對詳細的本地分支信息 git branch -av // 查看包括遠程倉庫在內的分支信息

注意:在 git branch 的輸出內容中,有一個分支,前面帶有 * 號,這標識我們當前所在的分支。

2. 創建分支

當我們要修復一個 Bug,或者開發一個新特性,甚至是在初學的時候怕打亂原來的代碼,都可以新建一個分支來避免對原來代碼的影響。

git branch dev // 新建一個名稱為 dev 的分支

3. 切換分支

當我們創建完分支以后,我們需要切換到新建的分支,否則,所有的修改,還是在原來的分支上。事實上,所有的改動,只能影響到當前所在的分支。

git checkout dev // 新建完 dev 分支以后,通過該命令切換到 dev 分支

4. 創建並切換分支

git checkout -b dev // 新建 dev 分支,並切換到該分支上

這個命令合並了前兩個獨立的命令,平常使用中一般這樣使用。

5. 合並分支

當我們修復完成一個 Bug,或者開發完成一個新特性,我們就會把相關的 Bug 或者 特性的上修改合並回原來的主分支上,這時候就需要 git merge 來做分支的合並。

首先需要切換回最終要合並到的分支,如 master

git checkout master        // 切換回 master 分支 git merge dev // 將 dev 分鍾中的修改合並回 master 分支

合並回主分支的時候,后面可能會面臨到沖突的問題。沖突的解決暫不在這里說明。

6. 刪除分支

當之前創建的分支,完成了它的使命,如 Bug 修復完,分支合並以后,這個分支就不在需要了,就可以刪除它。

git branch -d dev // 刪除 dev 分支

遠程倉庫

上面的所有命令都是針對本地倉庫的操作。當我們希望多個人來協作時,會將代碼發布到一個統一的遠程倉庫,然后多個人在本地操作以后,在推送到遠程倉庫。其他人協作時,需要先同步遠程倉庫的內容,再推送自己的修改。

1. 從遠程倉庫克隆

如果你本地沒有倉庫,希望從已有的遠程倉庫上復制一份代碼,那么你需要 git clone

git clone https://github.com/git/git.git // 通過 https 協議,克隆 Github 上 git 倉庫的源碼 git clone linfuyan@github.com/git/git.git // 通過 ssh 協議,克隆 Github 上 git 倉庫的源碼

注意: git clone 后面的倉庫地址,可以支持多種協議,如 https, ssh 等。

2. 添加遠程倉庫

如果你已經有了一個本地倉庫,如之前創建的 git-guide,然后你打算將它發布到遠程,供其他人協作。那么使用:

git remote add origin your_remote_git_repo // 為本地倉庫添加遠程倉庫

3. 推送本地的內容到遠程倉庫

當本地倉庫中,代碼完成提交,就需要將代碼等推送到遠程倉庫,這樣其他協作人員可以從遠程倉庫同步內容。

git push -u origin master // 第一次推送時使用,可以簡化后面的推送或者拉取命令使用 git push origin master // 將本地 master 分支推送到 origin 遠程分支

注意: git push -u origin master,第一次使用時,帶上 -u 參數,在將本地的 master 分支推送到遠程新的 master 分支的同時,還會把本地的 master 分支和遠程的 master 分支關聯起來。

4. 從遠程倉庫獲取最新內容

在多人協作過程中,當自己完成了本地倉庫中的提交,想要向遠程倉庫推送前,需要先獲取到遠程倉庫的最新內容。

可以通過 git fetch 和 git pull 來獲取遠程倉庫的內容。

git fetch origin master git pull origin master

git fetch 和 git pull 之間的區別:

  • git fetch 是僅僅獲取遠程倉庫的更新內容,並不會自動做合並。
  • git pull 在獲取遠程倉庫的內容后,會自動做合並,可以看成 git fetch 之后 git merge

注意:建議多使用 git fetch

5. 查看遠程倉庫信息

git remote [-v] // 顯示遠程倉庫信息

6. 建立本地分支和遠程分支的關聯

在本地倉庫中的分支和遠程倉庫中的分支是對應的。一般情況下,遠程倉庫中的分支名稱和本地倉庫中的分支名稱是一致的。

有的時候,我們會需要指定本地分支與遠程分支的關聯。

git branch --set-upstream 'local_branch' origin/remote_branch

7. 修改本地倉庫對應的遠程倉庫地址

當遠程的倉庫地址發生變化時,需要修改本地倉庫對應的遠程倉庫的地址。主要應用在工程遷移過程中。

git remote set-url origin url

忽略文件.gitignore作用:
在該文件中寫入的文件或目錄在push的時候不會推上去。
 附:常用命令可以學習這個網站:
https://segmentfault.com/a/1190000011673663

用-r參數刪除目錄, git rm --cached a.txt 刪除的是本地倉庫中的文件,且本地工作區的文件會保留且不再與遠程倉庫發生跟蹤關系,如果本地倉庫中的文件也要刪除則用git rm a.txt


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM