在github上創建自己的代碼倉庫


git用了很久了,github也用很久了,但一直都是使用別人的項目,

最近想把自己寫的一些代碼放到自己的帳號上去

以為就是很簡單的代碼推送,真正做一次時候才發現,原來坑還不少呢,

就把這次的經歷記錄一下

1,首先,准備工作,你得有一個自己的github帳號,其次,你得安裝了git工具,最后你還得有自己的本地項目,

2,在github上創建自己的遠程代碼倉庫

 

 

3,下載github客戶端

下載地址:

http://windows.github.com

安裝成功並登錄后如下

4,添加本地目錄到遠程倉庫

在你的本地文件目錄下右擊,就會出現Git Bash選項,點擊進入。

5、設置用戶名和郵箱地址。這兩個值是作為上傳時記錄的值。輸入命令:

git config --global user.name "用戶名"

git config --global user.email "郵箱"

設置好后可以用命令查看當前的設置:

git config --global user.name

6、初始化本地倉庫

git init

此目錄下會創建一個.git的文件(此文件可能會隱藏)

7,將該項目納入.git版本控制中

git add .

一定要注意add和.之間是有空格的,否則會報錯的

8,將所有更改放到本地暫存區域,等待上傳。

git commit -m "此次上傳的說明"

9,連接遠程倉庫

git remote add origin "https://github.com/GitHub用戶名/代碼倉庫名稱.git"

可以通過git remote -v 查看本地鏈接到的遠程倉庫

若分支設置錯誤,可以查看后切換分支

【git remote rm origin】 刪除現有遠程倉庫 
【git remote add origin url】添加新遠程倉庫

10、從遠程倉庫拉取所有更新(每次上傳項目都要操作)

git pull origin master

注意:此處極易報錯!

因為遠程代碼倉庫和本地代碼倉庫合並后,可能會有沖突,

如有報錯,使用git status查看狀態

本次就出現遠程代碼與本地合並失敗情況

此步先pull,因為兩個倉庫不同,發現refusing to merge unrelated histories,無法pull


因為他們是兩個不同的項目,要把兩個不同的項目合並,git需要添加一句代碼,在git pull,
這句代碼是在git 2.9.2版本發生的,最新的版本需要添加--allow-unrelated-histories
git pull origin master --allow-unrelated-histories

補充:在 git pull origin master --allow-unrelated-histories此步操作時,.gitignore文件錯誤沖突並沒有解決,只是強制合並忽略掉了,

是我覺得.gitignore文件無關緊要沒想去解決

被朋友 發現沒有解決此沖突就跳過就提交,雖然 我這是第一次對遠程倉庫作代碼提交,而沖突的問題又不大才給忽略,

但是這個操作非常不好,在遠程有大量代碼時候,出現此問題,還是不要這樣操作,解決沖突文件再提交,是必須 要做不能忽略的步驟,

 

 

 另外 ,補充下.gitignore介紹

在工程實現過程中,會生成一些中間文件,或者在項目中的部分文件是不需要進行版本管理的。

對於這些文件應該對於Github來講是透明的。Github提供這種功能,可以自己指定哪些文件可以不被管理。

具體方法是在版本管理的根目錄下(與.git文件夾同級)創建一個  .gitignore(gitignore是隱藏文件,所以前面有個點)

在進行協作開發代碼管理的過程中,常常會遇到某些臨時文件、配置文件、或者生成文件等,

這些文件由於不同的開發端會不一樣,如果使用git add . 將所有文件納入git庫中,那么會出現頻繁的改動和push,這樣會引起開發上的不便。

Git可以很方便的幫助我們解決這個問題,那就是建立項目文件過濾規則。

Git可以很方便的幫助我們解決這個問題,那就是建立項目文件過濾規則。git中提供兩種過濾機制,

一種是全局過濾機制,即對所有的git都適用;

另一種是針對某個項目使用的過濾規則。

 例如:

# 此為注釋 ,將被 Git 忽略
# 忽略所有 .a 結尾的文件
*.a
# 但 lib.a 除外
!lib.a
# 僅僅忽略項目根目錄下的 TODO 文件,不包括 subdir/TODO
/TODO
# 忽略 build/ 目錄下的所有文件
build/
# 會忽略 doc/notes.txt 但不包括 doc/server/arch.txt
doc/*.txt
# 會忽略掉 doc/ 里面所有的txt文件,包括子目錄下的(**/ 從 Git 1.8.2 之后開始支持 **/ 匹配模式,表示遞歸匹配子目錄下的文件)
doc/**/*.txt
local.properties #過濾具體文件
!local.properties#添加具體文件
*.[oa]#忽略所有以 .o 或 .a 結尾的文件

 

 

因為git是分布式管理,所以盡量不要在master主分支上作開發,

例如自己有一個項目,在外面開發時,可以使用分支1,在家開發時可以使用分支2,如果有其他人參入 ,分別 使用分支3,4,5

每次提交本地代碼時候,先合並遠程master主分支到本地,再提交

1.創建本地分支

git branch 分支名

 
2.切換本地分支
git checkout 分支名
 
本地分支提交
git  add .
git  commit -m ‘dev'
git push -u origin dev

 

合並本地分支到master

git  checkout master
git pull origin master
git merge origin/master  //合並分支
git status
On branch master
Your branch is ahead of 'origin/master' by 12 commits.
  (use "git push" to publish your local commits)
nothing to commit, working tree clean

上面的意思就是你有12個commit,需要push到遠程master上 
執行下面命令即可

git push origin master

 

 


免責聲明!

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



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