1)首先要注冊GitHub賬號并登陸,然后開始創(chuàng)建倉庫
2)填寫項目信息:
3)創(chuàng)建完成:
到此為止,GitHub上的倉庫地址為:https://github.com/dengshuangfu/github-demo.git
1)使用Maven創(chuàng)建工程
mvn archetype:generate -DgroupId=com.dsf.demo -DartifactId=github-demo -DarchetypeArtifactId=maven-archetype-quickstart -Dversion=1.0 -DinteractiveMode=false
2)初始化git倉庫
切換到根路徑(pmo.xml所在路徑),執(zhí)行以下命令初始化git倉庫
git init
3)使用倉庫管理文件
git status
提示有沒被跟蹤的文件,我們通過以下指令將文件添加到暫存區(qū)中
git add .
然后通過以下指令將文件提交到倉庫
git commit -m 'initial commit'
查看git倉庫分支情況
gitk --all
此時會彈出一個可視化窗口
可見當前只有一次提交
接著我們在resources下面創(chuàng)建application.yml文件,然后提交到倉庫,再執(zhí)行g(shù)itk命令
1)添加遠程倉庫地址
git remote add origin https://github.com/dengshuangfu/github-demo.git
2)本地與遠程的master關(guān)聯(lián)并推送到遠程倉庫的master上
git push -u origin master
報錯提示如下
To https://github.com/dengshuangfu/github-demo.git
! [rejected] master -> master (fetch first)
error: failed to push some refs to 'https://github.com/dengshuangfu/github-demo.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
這個報錯的原因是因為遠程分支上存在本地分支中不存在的提交,因為在遠程倉庫中當前存在".gitignore"和"README.md"文件,所以我們需要先抓取并合并遠程倉庫全部內(nèi)容(git pull origin master --allow-unrelated-histories),再推送本地倉庫數(shù)據(jù)(git push origin master)。
推送
到此,GitHub就已經(jīng)有我們推送的倉庫內(nèi)容了
我們再通過gitk命令來查看分支情況如下
注意:當設(shè)置以下配置后push時的區(qū)別
git config --global push.default matching
or
git config --global push.default simple [默認]
matching:git將推送本地分支到已存在同名的遠程分支。
simple:只將當前分支推送到相應(yīng)的遠程分支。
git push的一般形式為 git push <遠程主機名> <本地分支名> <遠程分支名> .
例如 git push origin master:refs/for/master ,即是將本地的master分支推送到遠程主機origin上的對應(yīng)master分支, origin 是遠程主機名, 第一個master是本地分支名,第二個master是遠程分支名。
1)git push origin master
如果遠程分支被省略,如上則表示將本地分支推送到與之存在追蹤關(guān)系的遠程分支(通常兩者同名),如果該遠程分支不存在,則會被新建
2)git push origin :refs/for/master
如果省略本地分支名,則表示刪除指定的遠程分支,因為這等同于推送一個空的本地分支到遠程分支,等同于 git push origin --delete master
3)git push origin
如果當前分支與遠程分支存在追蹤關(guān)系,則本地分支和遠程分支都可以省略,將當前分支推送到origin主機的對應(yīng)分支
4)git push
如果當前分支只有一個遠程分支,那么主機名都可以省略,形如 git push,可以使用git branch -r ,查看遠程的分支名
5)git push 的其他命令
6)關(guān)于 refs/for
// refs/for 的意義在于我們提交代碼到服務(wù)器之后是需要經(jīng)過code review 之后才能進行merge的,而refs/heads 不需要
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。