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

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

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

代码如下:

ssh -T git@github.com

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

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

代码如下:

ssh-keygen -C "yourname@gmail.com" -f ~/.ssh/github

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

代码如下:

ssh -T git@github.com

执行后提示: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 git@github.com: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 = git@github.com:dragon/test.git
url = git@gitcafe.com:dragon/test.git

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

(0)

相关推荐

  • ubuntu系统中删除/卸载自行安装的字体的方法

    ubuntu系统不同于windows系统,windows字体我们都会删除,下面分享删除ubuntu系统中我们自己安装的自己的方法,需要的朋友可以进来学习一下,删除多余的字体可以减少占用电脑内存,提高系 ...

  • 在Ubuntu系统中文件进行加密传输

    随着互联网的普及,很多公司在各地的分公司都经常需要通过互联网共享或传输一些重要的数据或文件。在网络安全问题日益突出的今天,如何保证Ubuntu系统的数据在传输过程中的安全性呢?本文为大家讲解在Ubun ...

  • Ubuntu系统中Flash视频播放方法

    Ubuntu系统可用的Flash播放器很多,这里我们介绍最为常用的两种Flash播放软件,即官方的Adobe Flash Player和开源的Swfdec,助大家玩转Flash视频。本文介绍基于Ubu ...

  • Ubuntu系统中安装使用tcpdump来统计HTTP请求

    Ubuntu系统中安装使用tcpdump来统计HTTP请求 安装 tcpdump的安装还是比较讨厌的... 1.网上下载获得libpcap和tcpdump http://www.tcpdump.org ...

  • Ubuntu系统中如何关闭alt快捷键?

    在Ubuntu系统中,快捷键可以帮我们快速的打开某个窗口或进行某个操作,方便省时.但是有些快捷键却经常容易被误按到,就像alt快捷键,动不动就把搜索框给呼出来了,次数多了很多用户都觉得很烦恼,想要把这 ...

  • 如何在Ubuntu系统中安装Wine

    基于其友好的工作界面和安全的账户管理方式,Ubuntu系统被越来越多的用户接受并投入使用,占据了操作系统市场的一席之地.但是伴随而来的兼容性问题却阻碍了系统普及的脚步,许多程序仅支持微软Windows ...

  • 怎么查询win10系统中之前几天的操作

    使用Windows10系统电脑的用户,想要查询电脑之前几天的操作,但是却不知道如何查询,那么小编就来为大家介绍一下吧.具体如下:1. 第一步,开机电脑,接着点击页面左下角的任务视图图标.2. 第二步, ...

  • Ubuntu系统中Git客户端的安装与基本命令使用教程

    安装git 复制代码 代码如下: sudo apt-get install git git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然 ...

  • Ubuntu系统中防火墙UFW设置(-ufw-iptables)

    自打2.4版本以后的Linux内核中, 提供了一个非常优秀的防火墙工具。这个工具可以对出入服务的网络数据进行分割、过滤、转发等等细微的控制,进而实现诸如防火墙、NAT等功能。 一般来说, 我们会使用名 ...