GIT使用之GitHub托管代码
admin
2023-01-22 20:22:21
0

1,在GitHub上创建一个项目的仓库

1)首先要注册GitHub账号并登陆,然后开始创建仓库
GIT使用之GitHub托管代码

2)填写项目信息:
GIT使用之GitHub托管代码
3)创建完成:
GIT使用之GitHub托管代码

到此为止,GitHub上的仓库地址为:https://github.com/dengshuangfu/github-demo.git

2,创建本地仓库

1)使用Maven创建工程

mvn archetype:generate -DgroupId=com.dsf.demo -DartifactId=github-demo -DarchetypeArtifactId=maven-archetype-quickstart -Dversion=1.0 -DinteractiveMode=false

2)初始化git仓库
切换到根路径(pmo.xml所在路径),执行以下命令初始化git仓库

git init

GIT使用之GitHub托管代码

3)使用仓库管理文件

git status

GIT使用之GitHub托管代码
提示有没被跟踪的文件,我们通过以下指令将文件添加到暂存区中

git add .

然后通过以下指令将文件提交到仓库

git commit -m 'initial commit'

GIT使用之GitHub托管代码
查看git仓库分支情况

gitk --all

此时会弹出一个可视化窗口
GIT使用之GitHub托管代码
可见当前只有一次提交

接着我们在resources下面创建application.yml文件,然后提交到仓库,再执行gitk命令
GIT使用之GitHub托管代码

3,将本地仓库推送到GitHub上

1)添加远程仓库地址

git remote add origin https://github.com/dengshuangfu/github-demo.git

2)本地与远程的master关联并推送到远程仓库的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.

GIT使用之GitHub托管代码
这个报错的原因是因为远程分支上存在本地分支中不存在的提交,因为在远程仓库中当前存在".gitignore"和"README.md"文件,所以我们需要先抓取并合并远程仓库全部内容(git pull origin master --allow-unrelated-histories),再推送本地仓库数据(git push origin master)。
GIT使用之GitHub托管代码
推送
GIT使用之GitHub托管代码

到此,GitHub就已经有我们推送的仓库内容了
GIT使用之GitHub托管代码

我们再通过gitk命令来查看分支情况如下
GIT使用之GitHub托管代码

注意:当设置以下配置后push时的区别

git config --global push.default matching
or
git config --global push.default simple      [默认]

matching:git将推送本地分支到已存在同名的远程分支。
simple:只将当前分支推送到相应的远程分支。

4,附Git push指令解析

git push的一般形式为 git push <远程主机名> <本地分支名> <远程分支名> .
例如 git push origin master:refs/for/master ,即是将本地的master分支推送到远程主机origin上的对应master分支, origin 是远程主机名, 第一个master是本地分支名,第二个master是远程分支名。

1)git push origin master
如果远程分支被省略,如上则表示将本地分支推送到与之存在追踪关系的远程分支(通常两者同名),如果该远程分支不存在,则会被新建

2)git push origin :refs/for/master
如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支,等同于 git push origin --delete master

3)git push origin
如果当前分支与远程分支存在追踪关系,则本地分支和远程分支都可以省略,将当前分支推送到origin主机的对应分支

4)git push
如果当前分支只有一个远程分支,那么主机名都可以省略,形如 git push,可以使用git branch -r ,查看远程的分支名

5)git push 的其他命令

  • git push -u origin master 如果当前分支与多个主机存在追踪关系,则可以使用 -u 参数指定一个默认主机,这样后面就可以不加任何参数使用git push,不带任何参数的git push,默认只推送当前分支,这叫做simple方式,还有一种matching方式,会推送所有有对应的远程分支的本地分支, Git 2.0之前默认使用matching,现在改为simple方式。如果想更改设置,可以使用git config命令。git config --global push.default matching OR git config --global push.default simple;可以使用git config -l 查看配置
  • git push --all origin 当遇到这种情况就是不管是否存在对应的远程分支,将本地的所有分支都推送到远程主机,这时需要 -all 选项
  • git push --force origin git push的时候需要本地先git pull更新到跟服务器版本一致,如果本地版本库比远程服务器上的低,那么一般会提示你git pull更新,如果一定要提交,那么可以使用这个命令。
  • git push origin --tags //git push 的时候不会推送分支,如果一定要推送标签的话那么可以使用这个命令

6)关于 refs/for
// refs/for 的意义在于我们提交代码到服务器之后是需要经过code review 之后才能进行merge的,而refs/heads 不需要

相关内容

热门资讯

德国总理:美国正在被伊朗羞辱 德国之声4月27日报道,德国总理默茨在访问一所学校时表示,在当前的持续冲突中,伊朗领导层正试图羞辱美...
理响中国|“长”歌以行,风云激... 光阴如梭,东方潮阔。这里是中国的长三角,世界的长三角。无论过去、现在还是未来,这片土地都因时代而生,...
白宫:特朗普及其国安团队开会讨... 新华社华盛顿4月27日电 美国白宫新闻秘书莱维特27日在记者会上证实,总统特朗普及其国家安全团队当天...
人民日报刊文:日本放开杀伤性武... 日本放开杀伤性武器出口推高地缘冲突风险(国际论坛)常思纯《人民日报》(2026年04月28日 第 0...
医疗保障法草案二审:明确生育保... 满足多样化健康保障需求本报记者 彭 波4月27日,医疗保障法草案二审稿提请十四届全国人大常委会第二十...
天津一景区发生自转旋翼机事故1... 澎湃新闻记者 吕新文中国民用航空华北地区管理局4月22日公布《豪客通航“10•1”天津长芦汉盐旅游区...
卡塔尔埃米尔与美国总统特朗普通... 当地时间24日,卡塔尔埃米尔塔米姆与美国总统特朗普通电话,重点就中东地区局势以及伊朗与美国谈判问题交...
男子30年前被扣押2859克黄... 澎湃新闻记者 王鑫家住辽宁省大连市的潘永嘉近日向澎湃新闻反映称,三十年前,他在大连周水子机场被盖州市...
商务部:取消反制欧盟两家金融机... 中华人民共和国商务部令二〇二六年 第1号鉴于欧盟已取消对中国两家金融机构的制裁措施,现公布《关于取消...
过去24小时共有5艘船只通过霍... 总台记者当地时间24日获悉,过去24小时内,共有5艘船只通过霍尔木兹海峡,其中包括一艘伊朗油轮。(总...