GitHub操作记录

*学习Git的一本推荐书 https://git-scm.com/book/zh/v2

*安装 Git for Windows

GitHub desktop  操作教程 https://www.jianshu.com/p/06a960d991aa  https://www.jianshu.com/p/a6fc842f501d

对文件右键点击Git Bash Here之后会打开命令行窗口,在窗口中就可以运行 Linux 命令。

shell基本概念

翻译程序可厉害了,只要你输入具体的命令,它就会把它翻译给机器听,这样你就可以和机器沟通了。例如,我们输入ifconfig可以查看 IP 地址,翻译程序就会将这条命令翻译给硬件,告诉它我们要查看 IP 地址。其实这里的翻译程序就是 Shell,而具体的命令就是Linux命令

简单地说,Shell 就是一套位于硬件和用户之间的程序,我们一般称之为解释器

 Shell 语言是一门弱语言类型,所以变量可以无须定义便可直接使用。

在 Linux 中有三个经常用到的输入输出流,他们分别是:

  • 标准输入(stdin)
  • 标准输出(stdout)
  • 标准错误(stderr)

标准输入指的是从键盘这些标准输入设备读取到的数据。一般情况下标准输入重定向的很少用到。

标准输出则是通过屏幕输出的这些数据。我们可以通过标准输出重定向来让数据保存到文件里。echo "hello" 1> out.txt

 

读取数组元素值的一般格式是:${array_name[index]}

在 Shell 语言中的运算都是通过其他命令来实现的,其中最常用的就是 expr 命令。

判断变量 a 的范围,我们在 [] 符号中,只能使用 -gt 、-a-lt等操作符。但如果用[[]]实现,我们就可以用上&&||操作符;

Shell 语言还支持下面这些关系运算符

  • -eq:检测两个数是否相等,相等返回 true。
  • -ne:检测两个数是否不相等,相等返回 true。
  • -gt:检测左边的数是否大于右边的,如果是返回 true。
  • -lt:检测左边的数是否小于右边的,如果是返回 true。
  • -ge:检测左边的数是否大于等于右边的,如果是返回 true。
  • -le:检测左边的数是否小于等于右边的,如果是返回 true。

逻辑运算符有三个,分别是:非运算、或运算、与运算。

  • !:非运算符。
  • -o:或运算符。
  • -a:与运算符。

 Shell 语言并没有布尔型。

*(Repository)仓库是git的基本概念,本质就是一个文件目录,这个目录中的所有文件都被git管理,目录下不管做什么操作都会被记录,包括:增加、删除、修改文件等,都会被记录下来,以便后来跟踪与修改相关记录,甚至可以还原到项目中的某个点。

 

*分支(branch)在一般的项目开发中会定义分支模型,在常用的模型中,分支有两类,五种

  • 永久性分支
     
    • master branch:主分支
    • develop branch:开发分支
  • 临时性分支
     
    • feature branch:功能分支
    • release branch:预发布分支
    • hotfix branch:bug修复分支

master和develop分支禁止直接从本地仓库commit并push到源仓库,必须由开发者的分支合并过去。合并前需要提交pull request的请求,通过相关代码编写人的code review并同意合并后才能将自己的分支合并到develop分支。master分支只能从develop分支合并。

为了提高效率,防止过多的冲突,在寻求分支合并前,应尝试将develop分支合并到自己分支,提前查看合并的冲突,在解决冲突后再提交pull request。
 

冲突解决:

修改是存在本地的,和中央仓库是完全隔离的。

要发布修改到正式项目中,开发者要把本地master分支的修改『推(push)』到中央仓库中。这相当于svn commit操作,但push操作会把所有还不在中央仓库的本地提交都推上去。

中央仓库代表了正式项目,所以提交历史应该被尊重且是稳定不变的。如果开发者本地的提交历史和中央仓库有分歧,Git会拒绝push提交否则会覆盖已经在中央库的正式提交。

在开发者提交自己功能修改到中央库前,需要先fetch在中央库的新增提交,rebase自己提交到中央库提交历史之上。这样做的意思是在说,『我要把自己的修改加到别人已经完成的修改上。』最终的结果是一个完美的线性历史,就像以前的SVN的工作流中一样。

如果本地修改和上游提交有冲突,Git会暂停rebase过程,给你手动解决冲突的机会Git解决合并冲突,用和生成提交一样的git statusgit add命令,很一致方便。还有一点,如果解决冲突时遇到麻烦,Git可以很简单中止整个rebase操作,重来一次(或者让别人来帮助解决)。

相关代码:

1). 首先将远程代码拉取到本地

    git clone xxx
    git checkout -b develop origin/develop
git branch -a 查看所有分支,就能看到远程分支。
2).新建feature分支

    git checkout -b feature 
GitHub团队项目合作流程:   以及:参考 https://blog.csdn.net/koffuxu/article/details/39010803

git checkout -b dev origin/dev 的意思是,创建一个dev分支(-b),并把远程dev分支(origin/dev)的内容放在该分支内。接着切换到该分支(checkout)

git checkout master 用于切换分支

和团队分支合并:

首先查看有没有设置upstream,使用 git remote -v 命令来查看

首先执行 git fetch upstream 获取团队项目最新版本。

,当前分支是dev分支,执行 git merge upstream/dev 命令后,会将源分支(upstream/dev)合并到当前分支(dev)。

如果你是在本地的master分支上开发,那么在使用该命令前,先切换到master分支。
merge的时候,有可能碰到冲突。需要解决冲突才能继续下面的操作。冲突的解决可以参考→ 冲突的解决

解决冲突后,就可以使用 git push 命令将本地的修改同步到自己的GitHub仓库上了。


3).多人在feature上开发,如果中途需要将develop的变更合入feature,所有人需要将本地的代码变更提交到远程

    git fetch origin 
    git rebase origin/feature
    git push origin feature

然后由feature负责人rebase develop分支,删除原来feature分支,重新新建feature分支;

    git fetch origin
    git rebase origin/feature
    git rebase develop
    git push origin :feature
    git push origin feature

这样可以保证feature保持线性变更;

4).feature开发完成后,所有人需要将本地的代码变更提交到远程

    git fetch origin 
    git rebase origin/feature
    git push origin feature

然后由feature负责人rebase develop分支,然后将feature分支合入develop,删除feature;

    git fetch origin
    git rebase origin/feature
    git rebase develop
    git checkout develop
    git merge feature
    git push origin :feature

这样可以保证develop保持线性变更,各feature的变更完整可追溯; 
5).合入feature后拉出对应的release/feature分支,后续bug修复在release/feature上

    git checkout develop
    git checkout -b release/feature

release/feature分支的同步合并与feature分支相同 
6).release/feature分支bug修复完成后,拉取对应的tag推送远程进行发布

    git tag -a v1.0 -m 'feature发布'
    git push origin v1.0

之后将release/feature合入develop分支,然后删除

    git rebase develop
    git checkout develop
    git merge release/feature
    git push origin :release/feature

7).发布完成后将release合入master分支,保证master为最新稳定版本(实际操作为发起merge request)
 

 

中央仓库的建立:git init --bare /path/to/repo.git

各个开发者创建整个项目的本地拷贝。通过git clone命令完成:

git clone ssh://user@host/path/to/repo.git

git status # 查看本地仓库的修改状态
git add # 暂存文件
git commit # 提交文件

git push origin master origin是在小明克隆仓库时Git创建的远程中央仓库别名。

小红push修改会怎么样?她使用完全一样的push命令:

git push origin master

但她的本地历史已经和中央仓库有分岐了,Git拒绝操作并给出下面很长的出错消息:

error: failed to push some refs to '/path/to/repo.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

这避免了小红覆写正式的提交。她要先pull小明的更新到她的本地仓库合并上她的本地修改后,再重试。

小红用git pull合并上游的修改到自己的仓库中。这条命令类似svn update——拉取所有上游提交命令到小红的本地仓库,并尝试和她的本地修改合并:

git pull --rebase origin master

--rebase选项告诉Git把小红的提交移到同步了中央仓库修改后的master分支的顶部,如下图所示:

如果你忘加了这个选项,pull操作仍然可以完成,但每次pull操作要同步中央仓库中别人修改时,提交历史会以一个多余的『合并提交』结尾。对于集中式工作流,最好是使用rebase而不是生成一个合并提交。

rebase操作过程是把本地提交一次一个地迁移到更新了的中央仓库master分支之上。这意味着可能要解决在迁移某个提交时出现的合并冲突,而不是解决包含了所有提交的大型合并时所出现的冲突。这样的方式让你尽可能保持每个提交的聚焦和项目历史的整洁。反过来,简化了哪里引入Bug的分析,如果有必要,回滚修改也可以做到对项目影响最小。

 

上传eclipse项目 https://blog.csdn.net/jam_fanatic/article/details/82810949

Eclipse 从git导入maven多模块项目 https://blog.csdn.net/xiongyouqiang/article/details/78903975

 

 

trydemot QQ

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Github是一个非常流行的代码托管平台,它提供了许多有用的功能来帮助开发者管理和协作他们的代码。下面是Github的高级操作教程,帮助您更有效地使用Github。 ## 创建和管理仓库 ### 创建一个新的仓库 要创建一个新的仓库,请按照以下步骤操作: 1. 在Github主页右上角,点击“+”图标,然后选择“New repository”(新建仓库)。 2. 输入仓库名称和描述。 3. 选择仓库的可见性(公共或私有)。 4. 选择是否在仓库中初始化README文件。 5. 选择仓库使用的许可证。 6. 点击“Create repository”(创建仓库)。 ### 克隆一个仓库 要克隆一个仓库,请按照以下步骤操作: 1. 打开要克隆的仓库页面。 2. 找到“Clone or download”(克隆或下载)按钮,并复制仓库的URL。 3. 打开终端并转到要将仓库克隆到的目录。 4. 运行以下命令:`git clone <repository-url>`,将`<repository-url>`替换为从GitHub复制的URL。 ### 删除一个仓库 要删除一个仓库,请按照以下步骤操作: 1. 打开要删除的仓库页面。 2. 点击仓库页面顶部的“Settings”(设置)按钮。 3. 滚动到页面底部,找到“Danger Zone”(危险区域)部分。 4. 点击“Delete this repository”(删除此仓库)按钮。 5. 在弹出窗口中输入仓库名称以确认删除操作。 6. 点击“I understand the consequences, delete this repository”(我理解后果,删除此仓库)按钮。 ## 分支和合并 ### 创建一个新的分支 要创建一个新的分支,请按照以下步骤操作: 1. 打开要创建分支的仓库页面。 2. 点击仓库页面顶部的“Branch: master”(分支:主分支)下拉菜单。 3. 在下拉菜单中输入新分支的名称,并按下回车键。 ### 切换到一个分支 要切换到一个分支,请按照以下步骤操作: 1. 打开要切换到的分支的仓库页面。 2. 点击仓库页面顶部的“Branch: master”(分支:主分支)下拉菜单。 3. 在下拉菜单中选择要切换到的分支。 ### 合并分支 要合并一个分支,请按照以下步骤操作: 1. 切换到要合并到的分支。 2. 点击仓库页面顶部的“New pull request”(新拉取请求)按钮。 3. 在“Comparing changes”(比较更改)页面中,选择要合并的分支。 4. 点击“Create pull request”(创建拉取请求)按钮。 5. 在“Open a pull request”(打开一个拉取请求)页面上,添加任何必要的注释和描述。 6. 点击“Create pull request”(创建拉取请求)按钮。 ### 删除一个分支 要删除一个分支,请按照以下步骤操作: 1. 打开要删除的分支的仓库页面。 2. 点击仓库页面顶部的“Branch: master”(分支:主分支)下拉菜单。 3. 在下拉菜单中选择要删除的分支。 4. 点击分支旁边的垃圾桶图标,然后点击“Delete branch”(删除分支)按钮以确认删除操作。 ## Issues和Pull Requests ### 创建一个Issue 要创建一个Issue,请按照以下步骤操作: 1. 打开要创建Issue的仓库页面。 2. 点击仓库页面顶部的“Issues”(问题)选项卡。 3. 点击“New issue”(新问题)按钮。 4. 在“Title”(标题)字段中输入问题的名称。 5. 在“Leave a comment”(留下评论)字段中输入问题的详细信息。 6. 添加任何必要的标签和里程碑。 7. 点击“Submit new issue”(提交新问题)按钮。 ### 回复一个Issue 要回复一个Issue,请按照以下步骤操作: 1. 打开要回复的Issue的页面。 2. 在问题页面底部找到“Leave a comment”(留下评论)字段。 3. 在“Leave a comment”(留下评论)字段中输入您的回复。 4. 点击“Comment”(评论)按钮。 ### 创建一个Pull Request 要创建一个Pull Request,请按照以下步骤操作: 1. 切换到要向其提交拉取请求的分支。 2. 点击仓库页面顶部的“New pull request”(新拉取请求)按钮。 3. 在“Comparing changes”(比较更改)页面中,选择要合并的分支。 4. 点击“Create pull request”(创建拉取请求)按钮。 5. 在“Open a pull request”(打开一个拉取请求)页面上,添加任何必要的注释和描述。 6. 点击“Create pull request”(创建拉取请求)按钮。 ### 合并一个Pull Request 要合并一个Pull Request,请按照以下步骤操作: 1. 打开要合并的Pull Request的页面。 2. 点击“Merge pull request”(合并拉取请求)按钮。 3. 在弹出窗口中输入任何必要的注释和描述。 4. 点击“Confirm merge”(确认合并)按钮。 ### 关闭一个Issue 要关闭一个Issue,请按照以下步骤操作: 1. 打开要关闭的Issue的页面。 2. 点击页面右侧的“Close issue”(关闭问题)按钮。 3. 在弹出窗口中输入任何必要的注释和描述。 4. 点击“Close issue”(关闭问题)按钮。 ## Github Pages ### 创建一个Github Pages站点 要创建一个Github Pages站点,请按照以下步骤操作: 1. 在Github上创建一个新仓库。 2. 在仓库中创建一个名为“index.html”的文件。 3. 将您的网站代码添加到“index.html”文件中。 4. 提交并推送更改。 5. 打开仓库页面并单击页面顶部的“Settings”(设置)按钮。 6. 滚动到页面底部,找到“GitHub Pages”部分。 7. 在“Source”(源)下拉菜单中选择“master branch”(主分支)。 8. 点击“Save”(保存)按钮。 9. 在“Your site is published at”(您的站点已发布到)字段中找到站点的URL。 ### 更改Github Pages主题 要更改Github Pages主题,请按照以下步骤操作: 1. 打开要更改主题的Github Pages站点的仓库页面。 2. 单击页面顶部的“Settings”(设置)按钮。 3. 滚动到页面底部,找到“GitHub Pages”部分。 4. 在“Theme Chooser”(主题选择器)下拉菜单中选择一个新主题。 5. 点击“Save”(保存)按钮。 ### 自定义Github Pages站点 要自定义Github Pages站点,请按照以下步骤操作: 1. 打开要自定义的Github Pages站点的仓库页面。 2. 单击页面顶部的“Settings”(设置)按钮。 3. 滚动到页面底部,找到“GitHub Pages”部分。 4. 在“Custom domain”(自定义域)字段中输入您的自定义域名。 5. 添加任何必要的DNS记录以指向Github Pages服务器。 6. 点击“Save”(保存)按钮。 ## 总结 以上是Github的高级操作教程。通过使用这些功能,您可以更有效地管理和协作您的代码,并更好地利用Github的强大功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值