Git 本地項目上傳至托管平台(OsChina/GitHub)



為了方便自己的代碼管理,通常是把自己的寫的一些小項目分享到GitHub 或者git.oschina上面!

區別:

 GitHub 只能創建公開的項目,國外的,速度慢!

git.oschina 開源中國的代碼托管平台,可建私有的,國內的,速度快!
一,准備工作:

Git 客戶端安裝:下載git 客戶端,並安裝!

附:下載地址:git客戶端 ,安裝教程!

在oschina/GitHub創建賬號並創建項目!

 

然后,就得到了遠程倉庫的url:

https://git.oschina.net/ut2002/WebViewSSL.git

 

 

二,Git操作流程:(以oschina平台為例,github等同)

Git項目:git@github.com:用戶名/項目名.git

OsChina項目:git@oschina.net:用戶名/項目名.git

方法一:本地創建項目根目錄(本地倉庫),然后與遠程oschina關聯!

-- 初始化Git倉庫 :git init ; //新建一個本地倉庫

-- 添加文件 :git add ./*  //將目錄中所有文件添加;

-- 提交改變到緩存 :git commit -m 'description' ;

-- 本地git倉庫關聯Git倉庫 :

git remote add origin https://git.oschina.net/ut2002/WebViewSSL.git ;

// 添加遠程倉庫,origin只是一個遠程倉庫的別名,可以隨意取

 

-- 提交到Git倉庫前先更新遠程倉庫內容至本地 : git pull origin master ;
// 防止遠程倉庫,有更新而產生沖突

 

-- 提交到Git : git push -u origin master ;

//將本地倉庫push遠程倉庫,並將origin設為默認遠程倉庫

 

在本地項目中右鍵進入git 命令行模式

 

 

 

然后,按上面的步驟進行操作!

 

 

 

 

輸入 賬號與密碼,進行上傳!

但是報錯如下:

 

根據提示先pull

 

 

這是因為期間遠程倉庫有可能有更新,提示在push前因先把遠程倉庫的代碼更新到本地,才能push!

Git pull origin master

 

 

上傳成功!

注意:有時有開分支開發時,需要合並分支至master,

輸入命令git merge gh-pages(分支名) 報錯! fatal:refusing to merge unrelated histories.

原因是合並不相關的會產生新的歷史記錄,所以應該這樣

git merge gh-pages --allow-unrelated-histories

方法二:不用關聯遠程倉庫,直接從git倉庫拉源碼至本地!

-- Git倉庫拉項目到本地 :git clone https://git.oschina.net/ut2002/HelloDemo.git , 注意克隆 的時候直接在倉庫根目錄即可不用再創建項目根目錄 ;

拉下來的項目會自動生成 .git文件,表明,是個git倉庫,不用git init來初始化!

-- 添加文件 :git add ./* , 將目錄中所有文件添加;

-- 提交緩存 :git commit -m 'description';

-- 合並 master :git merge master;

-- GitHub遠程倉庫同步 :git pull 遠程倉庫地址 ;

-- 提交到遠程GitHub倉庫 : git push 遠程倉庫地址 master ;

之后修改提交 : 

-- GitHub遠程倉庫同步 :git pull ;

-- 查看文件變更 : git status ;

-- 提交代碼到本地緩存 : git commit -m 'description';

--提交代碼到遠程GitHub倉庫 :git push ;

 

圖文步驟:

在要建立本地倉庫的文件中進入git命令行模式:如方法一 進入git命令行模式

 

 

從遠程倉庫 clone下項目,然后就會在命令行的目錄下生成.git文件!

 

如在git pull 報錯:

 

 

錯誤可能是因為在你以前pull下來的代碼沒有自動合並導致的.

保留你本地的修改  git merge --abort   git reset --merge

合並后記得一定要提交這個本地的合並,然后在獲取線上倉庫!再git pull!

如在 git add --all 報錯

 

 

原因分析:

在windows中的換行符為 CRLF, 而在linux下的換行符為:LF

使用git來生成工程后,文件中的換行符為LF, 當執行git add .時,系統提示:LF 將被轉換成 CRLF

解決方法: 

刪除剛剛生成的.git文件

 rm -rf .git  

  git config --global core.autocrlf false  

這樣系統就不會去進行換行符的轉換了

最后重新執行

Git init 再 git add --all

就按正常步驟操作!

如 git push 報 : error:src refspec master does not match any

原因分析

引起該錯誤的原因是,目錄中沒有文件,空目錄是不能提交上去的

解決方法

touch README git add README  git commit -m 'first commit' git push origin master

 

方法三:用Git Gui圖形化界面來操作!

- - 創建 Create New Repository

 

 

Create New Repository  : 創建新的版本庫

Clone Existing Repository :克隆存在的版本庫

Open Existing Repository :打開存在的版本庫

 

 

 

 

 

如本地目錄沒有源文件,可以把源文件拷貝至目錄下!

----提交本地文件至git倉庫

 

確定后

 

 

 

 

填寫提交描述信息

 

 

 

然后填寫遠程倉庫地址

 

輸入賬號與密碼成功!

 

 

----從git倉庫clone項目,再提交

選擇克隆新的版本庫然后Clone git項目

 

 

注意:本地目錄需是沒有存在的目錄,不然會報已存在,因為clone下來會自動創建

 

 

 

因為項目文件沒有任何改動,所以顯示的是空白!

 

 

可通過,clone任一開源項目地址,再push自己的遠程倉庫,這樣,實現下載開源項目,修改,學習,再push至自己的遠程倉庫,來記錄自己學習的過程!!!很方便滴!!

 

三種方法,比較推薦用Git Gui這樣的方式 ,能減少出錯!!

 

附二,簡單教程

 

 

 

附 git分支開發原則:

原文鏈接http://blog.csdn.net/YanJiangbo/article/details/25738737

如果本地dev分支有修改,則需要先切換到master分支,把本地分支的修改merge回master(Git merge dev),然后在master上把合並后的內容push到master上;然后再切換回本地分支,再把master的內容merge回分支,然后就繼續在分支開發。
開發流程:

// 查看本地分支

git branch

// 顯示本地、服務器所有分支

git branch -a

// 顯示本地分支和服務器分支的映射關系

git branch -vv

// 切換分支(和創建分支就差一個-b參數)

git checkout {{branch_name}}

 // 創建新分支,新分支的代碼來自於當前分支

git checkout -b  [分支名] 

// push本地分支代碼到遠端服務器,如果遠端服務器沒有該分支,將會自動創建;

git push origin [遠端分支名]

// pull遠端分支代碼到本地當前分支(建議使用)

git pull origin master

如果只想用git pull,可能需要建立track關系,則使用
git branch  --set-upstream-to=origin/<遠端branch_name> <本地branch_name>
輸出結果:Branch h5_dev set up to track remote branch h5_dev from origin. 

// 合並本地master分支到當前分支,比如當前處於dev分支,則把master上的代碼merge到dev分支上

git merge master

// 合並遠程master分支到當前分支

git merge origin/master

// 刪除本地分支

git checkout {{another_branch}}

git branch -d {{local_branch_name}}

//刪除遠程分支

git push origin --delete {{branch_name}}

# 假設本地有兩個分支: master和dev, 使用dev進行本地開發 # Step1. dev.commit git status  # 當前分支,修改的文件 git diff    # 具體的修改 git commit -m "{COMMIT_MESSAGE}" .  # 提交 # Step2. master.update.merge-dev git checkout master # 切換到master分支 git pull origin master:master   # 更新master git merge dev   # 合並dev分支的修改 git push origin master:master   # 提交代碼到遠程Git庫 # Step3. dev.update git pull origin master:dev  # 更新dev git checkout dev    # 切換回dev, 以便下一步的開發

 

常用命令:

1. git config --global user.name

2. git config --global color.status auto

3. git config --global color.diff auto

4. git remote -v// 查看遠程分支的git路徑

5. git clone git@192.168.53.123/tv.git

6. git status // 查看當前版本的狀態(是否修改)

7. git add xyz // 添加當前修改的文件到暫存區 or 跟蹤新文件(git add .把所有修改的文件add在暫存區)

8. git commit -m '{{update_msg}}'

9. git rm xxx // 從當前跟蹤列表移除文件,並完全刪除

10. git rm -cached xxx// 僅在暫存區刪除,保留文件在當前目錄,不再跟蹤

11. git mv old_name new_name// 重命名文件

12. git log

13. git log -n

14. git log --stat

15. git show b4f44fe

16. git diff

強制回滾命令:

git reset --hard e1da2c37bdaf3df52b9cf105ec7a7bd83f488bc1(上一次提交的號)

 

把遠程分支拉倒本地,並建立關聯關系track:

git checkout --track origin/jiangbo_dev
Branch jiangbo_dev set up to track remote branch jiangbo_dev from origin.

Switched  to a new branch 'jiangbo_dev'

 






免責聲明!

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



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