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

在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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,273评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,349评论 3 398
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,709评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,520评论 1 296
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,515评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,158评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,755评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,660评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,203评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,287评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,427评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,122评论 5 349
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,801评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,272评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,393评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,808评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,440评论 2 359