使用 github 做代码管理,知道这些就够了

只要掌握了下面的常用命令,基本上用使用 github 就没有问题。github 有两种认证方式,一种是通过 ssh 私钥的方式,一种通过 https 的账号名和密码。ssh 方式需要创建本地秘钥并且添加到个github 上,操作起来略显麻烦,本篇完全介绍以 https 方式管理。

主要原理说明

git 的管理依赖于在你本地仓库的目录中存在一个 .git 目录的,里面有 config、HEAD 等文件。

HEAD 里面是标识当前所在的分支,内容如下,表示当前在 dev 分支下,之后的拉取和推送都是在 dev 分支下完成:

ref: refs/heads/dev

config 里配置一些参数,如仓库地址、remote 等

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
[remote "origin"]
    url = https://username:password@github.com/huzhicheng/test__11.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master

其中,url 参数是重点,表示远程仓库地址,正常的远程仓库格式为https://github.com/huzhicheng/test__11.git,而这里,并且包括下面用到的都是 https://username:password@github.com/huzhicheng/test__11.git 这种格式。其中username 表示 github 账号,后面冒号分隔,接一个密码,也就是 github 密码,然后用 @ 符号连接上远程仓库。

用 https 方式连接 github 项目就是这么简单。

##初始化本地仓库

假设我们要在 github 上维护一个项目。首先,要登录 github 账号,点击 “New repository”,输入项目名称,即可成功创建项目仓库,之后会提示如下内容:

echo "# 初始化仓库" >> README.md
git init
git add README.md
git commit -m "first commit"

做上面这些操作之前,我们需要在机器上创建一个空白目录,然后进入这个目录进行操作。

第一行,是说新建一个 README.md 文件,并且写上你自定义的内容;

第二行,通过 git init 命令做本地仓库的初始化;

第三行,将 README.md 添加到暂存区;

第四行,提交暂存区并写好注释说明。

本地仓库和远程仓库创建联系

本地创建完仓库后,需要把本地仓库和远程仓库建立联系,这样之后才能推送文件到远程仓库。

git remote add origin https://username:password@github.com/huzhicheng/test__11.git

移除本地仓库和远程仓库的关联

如果远程仓库作废或者添加了错误的远程仓库地址,可以用下面的命令移除掉。注意 origin 后面的内容需要和关联远程仓库时填写的内容一致才可以。

git remote rm origin https://username:password@github.com/huzhicheng/test__11.git

首次提交

git push -u origin master

推送本地修改到远程

推送前一定要先拉取最新代码,并且每次修改前及时拉取最新代码是非常好的习惯。

//拉取最新代码
git pull origin master 

//查看本地仓库状态
git status 

// 将所有修改更新至暂存区
git add .

// 提交暂存区更改 并写上明确的注释说明
git commit -m "注释内容"

// 提交修改至主分支
git push origin master

以上操作就可以完成从仓库初始化到文件提交的完整过程了。

那如果是参与已经存在的项目呢,远程仓库已经存在并且已有项目文件在了,下面介绍如何参与已有项目。

将远程仓库同步到本地

首先需要 clone 远程仓库到本地,然后拉取新代码就可以了,就是这么简单。

git clone https://username:password@github.com/username/xxxxxx.git

git remote -v    可以查看远程仓库版本

git fetch origin master 拉取远程仓库更新

强制覆盖本地文件

有时候临时在本地仓库做了修改,但是不想保留,再拉取更新的时候要强制覆盖本地文件,可以用如下命令。

git fetch --all
git reset --hard origin/master
git pull

解决冲突

有时候我们可能和别人同时修改了某一个文件,提交的时候发现文件已经被别人修改,并且提交了。这时,如果我们再提交文件的话会出现如下错误:

To https://github.com/huzhicheng/test__11.git
 ! [rejected]        dev -> dev (fetch first)
error: failed to push some refs to 'https://github.com/huzhicheng/test__11.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 pull origin dev 获取最新版本,通常又会出现如下问题:

From https://github.com/huzhicheng/test__11
 * branch            dev        -> FETCH_HEAD
   e6bb7ea..c04d142  dev        -> origin/dev
Auto-merging dev.md
CONFLICT (content): Merge conflict in dev.md
Automatic merge failed; fix conflicts and then commit the result.

意思是说,获取新版本尝试自动合并,但是合并失败,请修复冲突并提交。

这时我们打开冲突的文件,会看到有 <<<<<<< HEAD=======>>>>>>> 这些符号,留下要合并的最后内容。然后再执行命令:

git  add  -u
git commit -m "解决冲突"
git pull  origin dev
git push origin dev

建立并切换到新分支

如果项目中存在多个分支,例如主分支和开发分支,我们在本地创建同样的分支结构使用如下命令,创建 dev 分支,并且切换到 dev 分支 。

// 创建分支并且切换到这个分支下
git checkout -b dev

// 切换到某分支
git  checkout dev
git checkout master

查看所在分支

其中前面带 * 号的为当前所在的分支。

$ git branch

* dev
  master

分支合并

我们之前假设已经在 dev 分支上做了一些修改,可以发布版本之后,想要合并到 master 分支上。

首先使用 git checkout master 切换到 master 分支,然后执行 git merge dev 命令进行 dev 分支到 master 分支的合并。

$ git merge dev
Updating 1dd1bb5..5fe81cd
Fast-forward
 dev.md | 6 ++++++
 1 file changed, 6 insertions(+)

公众号:古时的风筝
扫码关注

转载于:https://www.cnblogs.com/fengzheng/p/8532724.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DotBBS V2.1 介绍 DotBBS是一个Asp.Net开源论坛,轻量、安全、易扩展。深受广大用户喜爱,包括 CSDN、华军软件园、中国站长站 等各大专业网站纷纷转载。官方支持:http://www.dotbbs.net/bbs , DotBBS包括Access版和Sql Server版,可以在Web.config中设置。 DotBBS 是 前沿网络 WWW.cnQianyan.Com 旗下产品;正版购买,请联系 前沿网络科技团队 ,QQ:27029363 EMail:dongfang106@gmail.com 感谢 空白、CK 等参与 DotBBS V2.1测试,并反馈意见 -----------V2.1 新增功能及改进------------------------------------------------- DotBBS V2.1 版即将发布,本版主要改改进: 美化了前台界面, 优化了系统效率, 增强了系统安全性 1 增加引用功能 2 改善程序效率,提高运行速度 3 文字广告增加到2行,每行6 4 修改版块区置顶出现的问题 5 修改搜索出错问题 6 修改了文件上传方式,修改了文件存放位置 7 对网站安全性进行改进增强 8 跳转首页出调用 9 修改新会员,参与主题有问题 10 发贴回贴,js过滤,如 iframe script 等,防止 script inject 注入 11 会员登陆,注册等更强的验证,过滤,如程度等,过滤所有特殊字符. 12 增加在线SQL管理 13 对所有与数据库操作的,如 发贴,回贴,搜索 等, 检查 如 select insert update delete @@@D - % ,检查 sql 注入 14 动态改变表名,防止Sql注入,Cookies,Sessions 也采用动态注入机会. 15 增加会员删除,放回收站 16 DotBBS.config与Web.config合并 17 更换编辑器,能比较好的兼容浏览器,上传文件能以自动重命名 18 SqlServer版数据库,表增加了描述,方便二次开发 19 更换后台界面 20 论坛默认主目录,放到根目录,方便搜索引擎优化 -----------基本功能------------------------------------------------------- 1 DotBBS采用轻量级三层结构架构,更容易扩展. 2 采用独创的随机加密模式,让密码更安全. 3 采用缓存技术,让系统性能大幅提高. 4 支持RSS订阅. 5 下载就可使用,可与其他系统轻松整合. 6 采用sql过滤,Js过滤,防止sql注入. 7 Cookie采用随机加密技术,让用户信息更安全. 8 采用Ajax技术,大幅提高用户感受. 9 支持Url转发,提高SEO. 10 支持不同色调的皮肤,可根据需要设置. -----------版权信息------------------------------------------------------- 1 DotBBS版权(界面及程序)归 前沿网络科技团队 ,http://www.dotbbs.net所有. 2 所有个人、及非赢利机构可免费使用. 3 所有商业应用,必须购买正版授权. 4 所有使用者必须保留本系统的版权信息,及链接. -----------免责声明------------------------------------------------------- 1 当您的网站使用本论坛后,您论坛内容中所涉及的一切法律责任均与DotBBS无关。 2 使用本论坛属于自愿行为,请关注DotBBS最新更新,对使用本论坛造成的任何问题由使用者自己负责。 3 对使用DotBBS免费版用户,DotBBS中所集成的第三方控件、组件等所涉及版权问题,由用户自己按第三方控件、组件提供商规定的版权授权方式使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值