侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

在Ubuntu系统中使用Git客户端来操作GitHub代码

linux  /  管理员 发布于 7年前   181

一、Ubuntu下安装Git
Ubuntu12.04 LTS以后默认是已经安装Git的,可以使用 git --version 测试是否安装。
如果没有安装,使用命令: sudo apt-get install git git-core 安装git

二、ssh认证
在Ubuntu下使用ssh命令连接github.com的SSH服务,登录名为[email protected](所有GitHub用户共享此SSH用户名)。

复制代码代码如下:
ssh -T [email protected]

执行之后提示:Permission denied (publickey).
这说明我们还没有在GitHub账户中正确设置公钥认证,如下图所示:

接下来通过Ubuntu下的ssh-keygen命令创建公钥/私钥对:

复制代码代码如下:
ssh-keygen -C "[email protected]" -f ~/.ssh/github

然后将~/.ssh/github.pub公钥中的内容复制到剪贴板,公钥是一行长长的字符串,注意在粘贴时不要加入多余的空格、换行符等,否则在公钥认证过程当中因为服务端和客户端公钥不匹配而导致认证失败。最后将正确的公钥内容拷贝到GitHub的Key文本框中,并为这个ssh起个名字,保存即可。
设置成功后,用Terminal用ssh命令访问GitHub,会显示一条认证成功的消息并退出。

复制代码代码如下:
ssh -T [email protected]

执行后提示:Hi github! You've successfully authenticated, but GitHub does not provide shell access.
经过以上几步设置就可以直接使用git命令访问github的代码仓库了。


三、提交代码至GitHub
首先,在github.com上创建一个新的repo,根据情况加上适当的.gitignore,LICENSE等,然后提交本地代码至github


复制代码代码如下:git pull获取新版本

复制代码代码如下:
git status
git add
git commit -m "add new files"
git remote add origin [email protected]:FranFan/php-demo
git push -u origin master

最后附上一张图,很有用。

四、Git常用操作命令收集:
1) 远程仓库相关命令
检出仓库:
复制代码代码如下:$ git clone git://github.com/jquery/jquery.git
查看远程仓库:
复制代码代码如下:$ git remote -v
添加远程仓库:
复制代码代码如下:$ git remote add [name] [url]
删除远程仓库:
复制代码代码如下:$ git remote rm [name]
修改远程仓库:
复制代码代码如下:$ git remote set-url --push [name] [newUrl]
拉取远程仓库:
复制代码代码如下:$ git pull [remoteName] [localBranchName]
推送远程仓库:
复制代码代码如下:$ git push [remoteName] [localBranchName]
* 如果想把本地的某个分支test提交到远程仓库,并作为远程仓库的master分支,或者作为另外一个名叫test的分支,如下:

复制代码代码如下:
$ git push origin test:master // 提交本地test分支作为远程的master分支
$ git push origin test:test // 提交本地test分支作为远程的test分支

2)分支(branch)操作相关命令
查看本地分支:
复制代码代码如下:$ git branch
查看远程分支:
复制代码代码如下:$ git branch -r (如果还是看不到就先 git fetch origin 先)
创建本地分支:
复制代码代码如下:$ git branch [name] ----注意新分支创建后不会自动切换为当前分支
切换分支:
复制代码代码如下:$ git checkout [name]
创建新分支并立即切换到新分支:
复制代码代码如下:$ git checkout -b [name]
直接检出远程分支:
复制代码代码如下:$ git checkout -b [name] [remoteName] (如:git checkout -b myNewBranch origin/dragon)
删除分支:
复制代码代码如下:$ git branch -d [name]-d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项
合并分支:
复制代码代码如下:$ git merge [name]----将名称为[name]的分支与当前分支合并
创建远程分支(本地分支push到远程):
复制代码代码如下:$ git push origin [name]
删除远程分支:
复制代码代码如下:$ git push origin :heads/[name] 或 $
复制代码代码如下: git push origin :[name]
* 创建空的分支:(执行命令之前记得先提交你当前分支的修改,否则会被强制删干净没得后悔)

复制代码代码如下:
$ git symbolic-ref HEAD refs/heads/[name]
$ rm .git/index
$ git clean -fdx

3)版本(tag)操作相关命令
查看版本:
复制代码代码如下:$ git tag
创建版本:
复制代码代码如下:$ git tag [name]
删除版本:
复制代码代码如下:git tag -d [name]
查看远程版本:
复制代码代码如下:$ git tag -r
创建远程版本(本地版本push到远程):
复制代码代码如下:$ git push origin [name]
删除远程版本:
复制代码代码如下:$ git push origin :refs/tags/[name]
合并远程仓库的tag到本地:
复制代码代码如下:git pull origin --tags
上传本地tag到远程仓库:
复制代码代码如下:git push origin --tags
创建带注释的tag:
复制代码代码如下:git tag -a [name] -m 'yourMessage'

4) 子模块(submodule)相关操作命令
添加子模块:
复制代码代码如下:$ git submodule add [url] [path]
    如:
复制代码代码如下:$ git submodule add git://github.com/soberh/ui-libs.git src/main/webapp/ui-libs
初始化子模块:
复制代码代码如下:$ git submodule init  ----只在首次检出仓库时运行一次就行
更新子模块:
复制代码代码如下:$ git submodule update----每次更新或切换分支后都需要运行一下
删除子模块:(分4步走哦)
1)
复制代码代码如下:$ git rm --cached [path]
2) 编辑“.gitmodules”文件,将子模块的相关配置节点删除掉
3) 编辑“ .git/config”文件,将子模块的相关配置节点删除掉
4) 手动删除子模块残留的目录

5)忽略一些文件、文件夹不提交
在仓库根目录下创建名称为“.gitignore”的文件,写入不需要的文件夹名或文件,每个元素占一行即可,如

复制代码代码如下:
target
bin
*.db


6)后悔药
删除当前仓库内未受版本管理的文件:
复制代码代码如下:$ git clean -f
恢复仓库到上一次的提交状态:
复制代码代码如下:$ git reset --hard

7)Git一键推送多个远程仓库
编辑本地仓库的.git/config文件:

复制代码代码如下:
[remote "all"]
url = [email protected]:dragon/test.git
url = [email protected]:dragon/test.git

这样,使用git push all即可一键Push到多个远程仓库中


  • 上一条:
    Ubuntu系统中软件安装的命令小结
    下一条:
    Ubuntu 14.04.3系统怎么安装网易云音乐软件?
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 在Linux系统中使用Iptables实现流量转发功能流程步骤(0个评论)
    • vim学习笔记-入门级需要了解的一些快捷键(0个评论)
    • 在centos7系统中实现分区并格式化挂载一块硬盘到/data目录流程步骤(0个评论)
    • 在Linux系统种查看某一个进程所占用的内存命令(0个评论)
    • Linux中grep命令中的10种高级用法浅析(0个评论)
    • 近期文章
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-11
    • 2017-07
    • 2017-10
    • 2017-11
    • 2018-01
    • 2018-02
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2021-02
    • 2021-03
    • 2021-04
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-11
    • 2021-12
    • 2022-01
    • 2022-03
    • 2022-04
    • 2022-08
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-06
    • 2023-07
    • 2023-10
    • 2023-12
    • 2024-01
    • 2024-04
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客