Git远程仓库基本操作

Git远程仓库基本操作

参考文章:https://so.csdn.net/so/search/s.do?q=%20Git%20%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0&t=blog&u=u013490896


一. 与远程仓库建立联系

1. 在本地添加远程仓库

  • 首先,可以查看当前项目目录下关联的远程仓库服务器。若是克隆下来的会看到默认名字origin。我的这个项目目录没有做任何关联,所以结果为空
$ git remote
  • 执行如下命令为该项目目录添加远程仓库
# git remote add [shortname] <url>
$ git remote add origin https://github.com/yaokuku123/git-remote
  • 添加完远程仓库后,再次执行 git remote 命令,可以发现已经有了之前定义的origin仓库服务器
$ git remote
origin
  • 查看origin指代的具体url地址
$ git remote -v 
origin  https://github.com/yaokuku123/git-remote (fetch)
origin  https://github.com/yaokuku123/git-remote (push)
  • 从远程仓库拉取某个分支的数据,这里拉取master分支的数据。通过日志可以发现该操作仅会拉取master分支的数据,其他分支的不会拉取。(与clone的区别)
$ git pull origin master
remote: Enumerating objects: 23, done.
remote: Counting objects: 100% (23/23), done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 23 (delta 1), reused 21 (delta 1), pack-reused 0
Unpacking objects: 100% (23/23), 2.47 KiB | 27.00 KiB/s, done.
From https://github.com/yaokuku123/git-remote
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
 
 $ git log --oneline --graph --all
*   837e140 (HEAD -> master, origin/master) Merge branch 'master' of https://github.com/yaokuku123/git-remote
|\
| * 27bf482 Create README.md
* | 52de187 create new.txt
|/
* f761c45 return to history
* bfe5810 delete heihei.txt in master branch
* f61fe67 create heihei.txt in master branch
* 736a397 heihei
* 6ceef91 second file
* 5510769 first file

至此,通过本地建立与远程仓库的连接完成,并且成功拉取数据到本地

2. 从远程仓库克隆到本地

相比于上述方法,使用克隆可以更为简单的建立与远程仓库的联系。执行下述操作可以成功下载远程仓库的数据。可以发现该操作会下载所有分支的数据

$ git clone https://github.com/yaokuku123/git-remote
Cloning into 'git-remote'...
remote: Enumerating objects: 25, done.
remote: Counting objects: 100% (25/25), done.
remote: Compressing objects: 100% (15/15), done.
remote: Total 25 (delta 2), reused 22 (delta 1), pack-reused 0
Receiving objects: 100% (25/25), done.
Resolving deltas: 100% (2/2), done.

$ git log --oneline --graph --all
*   837e140 (HEAD -> master, origin/master, origin/HEAD) Merge branch 'master' of https://github.com/yaokuku123/git-remote
|\
| * 27bf482 Create README.md
* | 52de187 create new.txt
|/
* f761c45 return to history
* bfe5810 delete heihei.txt in master branch
* f61fe67 create heihei.txt in master branch
| * 4399212 (origin/dev) create hello.txt in dev
|/
* 736a397 heihei
* 6ceef91 (origin/test) second file
* 5510769 first file

二. 提交数据到远程仓库

1. 正常操作流程

  • 首先,通过上述操作将远程仓库的内容克隆到本地
$ git clone https://github.com/yaokuku123/git-remote
  • 修改其中的某个文件并提交到本地仓库
$ echo "Hello World" >> test.txt
$ git add test.txt
$ git commit -m "add one line in test.txt"
  • 将本地仓库的数据推送到远程仓库的master分支
$ git push origin master

2. 遇到远程仓库不一致的情况

在尝试运行 git push 命令的时候,若远端仓库已经与开始时不一致,远端仓库的版本已发生迭代,则会导致此时的push操作失败。

  • 当push操作失败时,需要首先抓取远程仓库的最新版本数据。执行完该操作通过查看日志,可以发现此时发生分叉
$ git fetch
  • 查看抓取到的新版修改的最先代码,若不存在问题。则执行下列操作合并远端的分支到master分支。若没有冲突则成为最新变更;若存在冲突则解决冲突的部分数据即可
$ git merge origin/master
  • 合并分支后,再次执行推送操作即可
$ git push origin master

另外,也可以强制推送。强制推送会覆盖远程仓库的更改,并且可以把旧版本的数据强行覆盖远程仓库中的数据。(不推荐使用)

$ git push -f origin master
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

攻城老湿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值