背景
正常情況下我們是在GitHub(Gitee是一樣的揪阶,還不卡,因此下文將在Gitee倉庫操作)創(chuàng)建一個(gè)代碼倉庫,然后將倉庫拉到本地缚窿,在本地會(huì)生成一個(gè)和倉庫名稱一樣的文件夾调鲸,然后在文件夾內(nèi)寫代碼盛杰,最后使用git命令將寫的代碼文件上傳到倉庫中。
但是比如我們之前沒有創(chuàng)建倉庫藐石,現(xiàn)在已有一個(gè)代碼工程即供,想將代碼上傳到倉庫里面,應(yīng)該怎么做呢于微。之前筆者是創(chuàng)建一個(gè)名稱一樣的倉庫逗嫡,將倉庫拉到本地青自,也就是本地有一個(gè)之前已有代碼的文件夾和一個(gè)新的倉庫文件夾,然后將已有代碼的文件夾里面的所有內(nèi)容拷貝到倉庫文件夾中驱证,然后在倉庫文件夾中提交上傳延窜。這樣是可以行的,但是有點(diǎn)low抹锄,因此在本文中記錄一種新的方式逆瑞。
介紹
在Git倉庫中拉到本地的文件夾內(nèi)會(huì)有一個(gè).git隱藏文件夾,這個(gè)文件夾里面記錄的是本地文件夾和Git倉庫的關(guān)系伙单,本文記錄本地文件夾上傳到一個(gè)新的Git倉庫获高。那么本地文件夾就有2中情況,一種是有一個(gè).git文件夾吻育,可能的原因是可能這個(gè)文件夾是從別的倉庫拉下來的念秧,只是一直沒有做管理,那個(gè).git文件夾一直都在布疼,只是沒有用了出爹,那么我們就將這個(gè)文件夾刪除。保證我們要上傳到倉庫的文件夾內(nèi)沒有.git文件夾缎除,是本地一個(gè)與Git倉庫無關(guān)的文件夾严就。還有一種是沒有.git文件夾的本地文件夾,也就是直接與Git倉庫無關(guān)器罐,我們要做的就是這種情況梢为。
建議
.gitignore
要筆者說的話每個(gè)Git倉庫必須要有一個(gè)gitignore文件,當(dāng)然沒有這個(gè)文件倉庫一樣使用轰坊。所以即使你不會(huì)使用或者不想使用铸董,筆者也建議你得有一個(gè),現(xiàn)在的IDE創(chuàng)建軟件代碼工程一般都會(huì)默認(rèn)生成這個(gè)文件肴沫,如果你的文件夾不是IDE創(chuàng)建的或者其它什么原因沒有這個(gè)文件粟害,或者之前有被你刪除了,筆者都建議你要保證有一個(gè)颤芬。
Git倉庫就是要保存我們這個(gè)文件夾里面的文件悲幅,而往往這個(gè)文件夾中有很多文件,比如代碼而言站蝠,寫代碼部分是要上傳的汰具,但是代碼編譯生成的文件往往是不需要上傳的,gitignore就是做這個(gè)事情的菱魔,它可以規(guī)范出哪些文件或者文件夾要被忽略留荔。gitignore文件語法大致如下,target/表示target文件夾和文件夾內(nèi)的所有內(nèi)容澜倦,*.jpg表示所有.jpg文件聚蝶。被聲明在gitignore文件中的文件都會(huì)被Git忽略不上傳到倉庫中杰妓。
.idea/
build/
classpath/
logs/
target/
out/
*.log
*.jpg
操作
本文就本地的一個(gè)文件夾來做示例,將已經(jīng)存在的文件夾上傳到倉庫中碘勉。
本地有一個(gè)MobilePortableServer文件夾巷挥,是一個(gè)Java工程,里面有一些代碼文件同時(shí)也有.gitignore(再次強(qiáng)調(diào)一定要有恰聘,如果沒有你就新建一個(gè)句各,如果你不會(huì)用你可以把它空著不寫內(nèi)容吸占,日后你一定會(huì)用晴叨,總之就是這個(gè)文件一定要有),同時(shí)因?yàn)楣P者的這個(gè)工程已經(jīng)在倉庫中所以也有.git文件夾矾屯。筆者在這里先將.git文件夾和Gitee中的這個(gè)倉庫刪除掉兼蕊。
然后在Gitee中新建一個(gè)與文件夾同名的倉庫
倉庫名稱就是這個(gè)文件夾名稱,路徑那里默認(rèn)會(huì)將駝峰改成全小寫和連接線件蚕,筆者不喜歡被修改孙技,因此改成了和倉庫一樣的名稱。一般而言會(huì)對(duì)倉庫進(jìn)行初始化排作,添加一些模板文件牵啦,比如.gitignore和readme等,筆者的這個(gè)文件夾就是最早用倉庫創(chuàng)建出來的妄痪,所以這些文件都有哈雏,即使沒有也沒關(guān)系可以利用創(chuàng)建倉庫的時(shí)候創(chuàng)建也可以在文件夾中自己創(chuàng)建,當(dāng)然也可以沒有這些文件衫生。筆者這里就不初始化裳瘪,直接創(chuàng)建。
創(chuàng)建完成后你的Gitee中就會(huì)出現(xiàn)這個(gè)倉庫罪针,不過倉庫里面是空的彭羹,什么都沒有。記住箭頭位置泪酱,這里可以復(fù)制你的倉庫地址派殷,后面會(huì)用的上。
如果你是用倉庫初始化生成的gitignore文件墓阀,那么它會(huì)根據(jù)你選的語音之類的信息生成一些默認(rèn)的過濾文件愈腾,但是往往沒什么用,筆者總是自己創(chuàng)建岂津,然后根據(jù)自己本地環(huán)境添加對(duì)應(yīng)的過濾文件虱黄。筆者這里的內(nèi)容就如上文貼出來的一樣,相關(guān)的文件不需要上傳就過濾掉吮成。
開一個(gè)cmd窗口橱乱,切到要上傳的文件夾的路徑辜梳,在文件夾中看出,筆者已經(jīng)將之前的.git文件夾刪除了泳叠。
在cmd中一次執(zhí)行以下命令
git init
git remote add origin https://gitee.com/xxx.git
git add .
git commit -m "上傳代碼到倉庫"
git push -u origin master
執(zhí)行g(shù)it init后會(huì)在本地文件夾內(nèi)生成一個(gè).git文件夾作瞄,這里面會(huì)有一些git的基本配置,表示這個(gè)文件夾要與Git關(guān)聯(lián)起來危纫。
執(zhí)行g(shù)it remote add origin https://gitee.com/xxx.git時(shí)宗挥,需要將后面的倉庫地址改成上文中你創(chuàng)建倉庫后倉庫的地址。
執(zhí)行g(shù)it add .后會(huì)將本地文件夾中除了gitignore聲明過濾的所有文件標(biāo)記為git上傳文件种蝶。
執(zhí)行g(shù)it commit -m "上傳代碼到倉庫"后會(huì)將上一部標(biāo)記的文件提交到本地git倉庫中契耿。-m參數(shù)后面接的是此次上傳的說明。
執(zhí)行g(shù)it push -u origin master后git會(huì)將本地倉庫的文件上傳到Git倉庫中螃征,也就是上文中創(chuàng)建的倉庫搪桂。
再次進(jìn)入上文中創(chuàng)建的倉庫,可以看到你的倉庫中出現(xiàn)了你想要上傳的文件盯滚。如果倉庫的文件數(shù)據(jù)不對(duì)踢械,那么你請(qǐng)檢查你的gitignore文件。
至此一個(gè)本地文件夾上傳到新的倉庫操作就完成了魄藕。
使用
新的倉庫使用還是一樣内列,比如本地文件夾中添加了新文件或者修改了已有文件,然后使用git命令上傳到倉庫即可背率。筆者在本地文件夾中添加一個(gè)test.txt和修改README.md文件话瞧。
執(zhí)行g(shù)it add .命令添加要上傳的文件
執(zhí)行g(shù)it commit -m "說明",將要上傳的文件提交到本地倉庫
執(zhí)行g(shù)it push命令退渗,上傳到git倉庫中移稳。
進(jìn)入倉庫能看到文件已經(jīng)變化,并且在文件后面可以看到修改說明