常用Git命令和操作(github)

常用Git命令和操作(github)

2018-3-28 作者: 张子阳 分类: 其他

这篇文章总结了当使用github托管git仓库时,经常使用的命令。

使用远程仓库

与远程仓库建立关联

git和github是不同的概念,git是版本控制工具,github是托管 Git项目的云端平台。

如果没有远程库,可以先注册一个github账号,然后创建一个新的远程库。

当使用git clone [github url]命令复制一个远程库时,就自动与该远程库建立起了关联。git init则会创建一个无任何关联的本地库。

git remote用于查看远程库,如果什么也没有显示,则表示无关联的远程库;如果显示origin,表示已关联远程库。origin是远程库实际地址的别名。

git remote -v 命令,可以查看远程库的完整路径地址。

如果想要将本地的git库与远程库关联起来,可以使用git remote命令。假设库的地址是:https://github.com/somesite/repo,则命令如下:

git remote add origin https://github.com/somesite/repo

将更改推送至远程库

git push origin [branchname]

git log --oneline --graph --decorate --all * a84a771 (HEAD -> master, origin/master) 修改内容 * ed31941 初次提交

推送后使用 git log --oneline --graph --decorate --all ,可以看到多了 origin/master 字样,称为跟踪分支,origin/master告诉我们远程仓库origin 有一个 master 分支,指向 commit a84a771。

从远程仓库拉取修改

git pull origin [branchname]

使用git pull命令拉取时,会自动将远程仓库中的代码与本地分支进行合并。

git fetch origin [branchname]

使用git fetch命令拉取时,不会在收到这些 commit 之后,自动将本地分支与远程跟踪分支合并。

当需要合并时,在本地的master分支上执行 git merge original/master

当本地的所有Commit远程都有,并且远程有本地没有的Commit时,执行git pull就可以了。 当本地的部分Commit远程没有,并且远程有本地没有的Commit时,先git fetch获取远程Commit,然后手动执行合并,再执行git push推送至远程仓库。

使用其他开发者的仓库

Fork

在github中,fork一个仓库的意思,就是复制一份其他开发者的仓库。fork和clone不同,clone是获得一份本地的仓库副本;而fork是获得一个远程的仓库副本,副本位于github中。

查看其他人的提交

git shortlog 将会对提交者进行分组,然后显示commit的注释。

git shortlog

有时候这样显示仍然会很多,可以添加两个选项:git shortlog -s -n,-s仅显示commit的数量,而不显示注释内容,-n则按数量进行排序。

git shortlog -s -n

如果想要按作者进行筛选,则可以使用--author选项:

git log --author=Jimmy

如果名字中间有空格,则需要加引号,例如:git log --author="Jimmy Zhang"

如果想要搜索注释内容,可以使用--grep选项:

git log --grep="css bug"

与其他开发者协作

创建Pull Request

创建Pull Request允许你提交修改到你fork的原开发者库中。

步骤如下:

  1. 阅读项目的 CONTRIBUTING.md 文件,了解如何贡献
  2. 查看项目现有的Issues
  3. 与项目维护者交流
  4. fork源仓库
  5. 将fork克隆到本地计算机
  6. 创建新的特性分支
  7. 将修改commit到分支
  8. 使用git push推送到你的fork库上
  9. 新建一个Pull Request,包含你的新分支

与开发者的源库保持同步

fork库(别名origin)和源库(被fork的那个库)可能不同步,为了保持同步,可以进行下面的操作:

  • git remote add upstream [源库地址](同样,upstream为源库的别名)
  • git pull upstream [branch],拉取源库的更改,并合并到本地
  • git push origin [branch],将本地分支推送到origin库

git还有很多的命令,在实践中慢慢总结吧,了解这些常见的命令,应该已经足够应付大部分的场景了。

感谢阅读,希望这篇文章能给你带来帮助!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏我的博客

mac安装memcache

安装memcached服务 brew install memcached 配置开机启动(用brew安装之后下面会提示怎么启动) ln -sfv /usr/loc...

4136
来自专栏应用案例

Linux常用软件安装总结

首先说xshell一个好用的功能,如果你同时要管理几台一样的服务器组成的集群,一台一台操作很麻烦,可以使用xshell菜单栏——工具——勾选发送键输入到所有会话...

3398
来自专栏xingoo, 一个梦想做发明家的程序员

JSP Session管理

  本篇讲述JSP中session的相关知识和管理方法;   先说说cookie与session   在web中常用的两种用户信息管理方式:cookie 和 s...

2257
来自专栏魏艾斯博客www.vpsss.net

lnmp 环境 ftp 客户端看不到文件

3832
来自专栏杨龙飞前端

eclipse如何安装插件

1613
来自专栏IT笔记

JavaWeb项目架构之NFS文件服务器

当用户A通过互联网上传文件时,经过负载均衡,随机或者定向分配到某个节点。但是当用户B去下载这个文件的时候,并不确定会向哪个节点发送请求,这样会导致用户存在一定几...

5509
来自专栏程序员叨叨叨

一招搞定Windows无法安装到GPT分区形式磁盘疑难

今天给堂弟的电脑重装系统时,遇到了以往USB安装系统经常出现的问题,“Windows无法安装到这个磁盘。选中的磁盘采用GPT分区形式”。之前在CSDN的博客上有...

752
来自专栏Aloys的开发之路

Android真机安装sqlite3的方法

Android版本: 4.4.2 PS C:\Users\jiang> adb shell shell@hwH60:/ $ su - root # 此时输入s...

3349
来自专栏老安的博客

zabbix 监控percona

1573
来自专栏技术记录

解决NTPD漏洞,升级Ntpd版本

关于解决漏洞的问题我就不详说了,主要就是升级版本。这里我们就直接简单记录下步骤: 1、升级 使用root用户登录系统进入到/home/guankong ,上传n...

3695

扫码关注云+社区

领取腾讯云代金券