美文网首页程序员
红尘来去两袖空,天地乾坤在我胸 --git命令总结

红尘来去两袖空,天地乾坤在我胸 --git命令总结

作者: SofiyaJ | 来源:发表于2018-01-13 10:56 被阅读0次

在github上创建第一个工程,添加一个README.md

git-test.png

在本地新建一个文件夹,同步远程代码

git init    #在目录中初始化本地git仓库
git remote add origin url #本地和远程仓库关联
git pull origin master       #将远程仓库的代码pull到本地

在本地添加文件dairy.txt,并提交

git status  #查看目前git的状态
git add dairy.txt   #git add . 添加全部,其实是将工作区的内容提交到暂存区
git commit -m "add dairy.txt " 
git push origin master
git push.png

查看github,在本地新建的文件已经同步

回到历史 && 来到未来

git log   #查看日志
history.png
git reset --hard ba4241e83647dbe85f9705b42b06cf918e878fa4
历史版本.png

可见此版本没有myself.txt的文件,用vi编辑器查看历史内容

git reflog #查看未来的版本
future.png

分支开发 && 分支合并

git branch test #新建分支test
git branch       #罗列出所有的分支
git checkout test #//切换到test分支
git checkout -b dev #创建并切换到dev分支
add branch.png

将本地新建的分支同步到远程

TIPS:在实际开发的很多IDE,可以自动创建远程分支,这一步往往可以省略。

git push origin test
git push origin dev
origin test.png

然后将本地dev分支上上传的图片push到github上

merge

在gitlab上面操作,进入项目下,点击merge request选项,然后选择你之前推到远端的dev branch和你要合并到哪个分支,比如你要合并到master上,点击merge request

解决冲突

冲突原因:

  • 多个成员修改不同文件
  • 多成员修改相同文件不同区域
  • 同时修改文件名和文件内容

在一些情况下,git可以智能合并,有些时候需要手动合并
上诉三种情况都可以用一种方式解决,就是在push之前先pull

手动合并

git status  #查看版本库状态
git mergetool  #使用工具

出现kdiff3图形界面,其中A区为修改前,B区为本地(local)版本库修改,C区为远程版本库(remote)信息,在最下方点击右键选择需要使用的版本库,修改后保存退出即可。之后:

git commit -m ""
git push origin master

这里就完成了conflict的手动合并
查看提交日志:

git log --graph --online

建立里程碑

所谓里程碑,就是版本号,每一个版本代表开发人员一段时间的工作。
在master merge分支代码之后的工程下,选择relsease


release.png

选择 public release之后,可以看到如下界面:


public release.png
可以直接下载打好的包,很多开源项目就是可以这样直接下载去项目中使用。

Fork Other's Repository

很多时候,我们需要拿到别人的仓库,进行后续或者协作开发
在对应的项目工程下,在github的左上角选择 fork,工程就会出现在我的github的主页上:


fork.png

然后我们需要再本地新建一个文件夹,将项目拉倒本地

git remote -v  #查看远程仓库的版本
git remote add upstream url
upstream.png
git pull upstream master
git push origin master

本人修改的代码可以通过pull request 请求合并,提交贡献

写在后面的话

1.origin
代码库(repository)可以存放在你的电脑里,同时你也可以把代码库托管到Github的服务器上。在默认情况下,origin指向的就是你本地的代码库托管在Github上的版本。
2.FETCH_HEAD
是一个版本链接,记录在本地的一个文件中,指向着目前已经从远程仓库取下来的分支的末端版本。
3.git fetch 有四种基本用法

  • git fetch:这将更新git remote 中所有的远程repo 所包含分支的最新commit-id, 将其记录到.git/FETCH_HEAD文件中
  • git fetch remote_repo :这将更新名称为remote_repo 的远程repo上的所有branch的最新commit-id,将其记录。
  • git fetch remote_repo remote_branch_name :这将这将更新名称为remote_repo 的远程repo上的分支: remote_branch_name
  • git fetch remote_repo remote_branch_name:local_branch_name :这将这将更新名称为remote_repo 的远程repo上的分支: remote_branch_name ,并在本地创建local_branch_name 本地分支保存远端分支的所有数据。
    4.暂存区的概念很重要,了解了这个概念,git的很多命令你就知道在干什么了。


    stage1.png
    stage2.png
    stage3.png

5.在每次提交代码前,养成使用 git diff 的好习惯
6.每天下班前,清空你的工作区,给明天一个愉快的开始!
7.如果你的项目组有很多同学,或者是你为很大的开源项目做贡献,建议你将每次提交的代码描述详细,尽量精确到第几行,实现什么功能。

FAQ

  • Access denied
remote: HTTP Basic: Access denied
fatal: Authentication failed for 'http://git.xx/xxx/xxx.git/'

需要重新设置用户名和邮箱:

$ git config --global user.name "xxx"
$ git config --global user.email "xxx@xxx"
  • git pull 失败 ,提示:fatal: refusing to merge unrelated histories
    在git pull 时,增加一个可选项
git pull origin master --allow-unrelated-histories
  • 本地同步远端的git分支
    在本地新建并切换到dev分支,和远程的dev分支进行关联
git branch -b dev /origin/dev

上诉操作等同于:

git branch --all   #查看所有分支,发现只有master
git checkout dev #在本地创建dev分支
git branch dev #本地切换到dev
git push origin dev:dev  #本地dev和远端dev进行关联

查看本地分支和远程分支的对应关系:

git branch -vv

程序媛小白一枚,如有错误,烦请批评指正!(#.#)

相关文章

  • 红尘来去两袖空,天地乾坤在我胸 --git命令总结

    在github上创建第一个工程,添加一个README.md 在本地新建一个文件夹,同步远程代码 在本地添加文件da...

  • 心经

    天地在胸 屋檐翘空 神仙美景 默念心经

  • git 命令

    Git常用命令总结Git常用命令总结 git init 在本地新建一个repo,进入一个项目目录,执行git ...

  • Git 常用指令

    Git常用命令总结 Git常用命令总结 git init 在本地新建一个repo,进入一个项目目录,执行git i...

  • git入门

    这里对git init、git add、git commit命令进行一个总结。 $ git init 命令,该命令...

  • 「git」git使用过程中的问题与解决

    git checkout master报错 在一个空的目录/test执行以下命令 git init 创建空...

  • GIT 常用命令总结

    GIT 常用命令总结 GIT 初始化命令 命令描述git init初始化本地 git 仓库git config -...

  • git 命令汇总

    git 命令汇总 常用总结 1.$ git help 查看git所有命令的帮助 2.$ git config --...

  • 雾接闲愁云乘仙 (七言)

    执迷红尘可处岸? 无雨朝夕问影单。 更得霜雪逼严冬, 罪责空濛心生厌。 郁郁天地复浑沌, 茫茫乾坤多愁怨。 纵入诗...

  • Git 命令总结

    Git 命令总结 基本命令 远程仓库 分支管理 标签管理 自定义 Git 搭建 Git 服务器 安装 git:$ ...

网友评论

    本文标题:红尘来去两袖空,天地乾坤在我胸 --git命令总结

    本文链接:https://www.haomeiwen.com/subject/ydzqoxtx.html