git基础概念和常用命令

IDEA右键能直接查看该文件git提交过往记录

经验教训

  • 提交到master之前, 记住要先merge一下master, 然后再让master merge!!!

常用命令

  • git clone 项目url(clone某个项目)
  • 删除远端分支:git push origin 【空格】【冒号】【你的分支名字】,比如我github上有master和feature分支,我现在想着删除feature分支,命令如下: git push origin :feature
  • 查看远程库: git remote(-v 显示详细信息)

提交命令

  1. git status(查看项目状态)
  2. git add(添加文件)
  3. git commit(添加评论,并且将变更提交到本地工作区)
  4. git push origin branch(发布到远端服务器)

删除文件

  1. git rm test.txt
  2. git commit -m "remove test.txt"

分支相关

  1. git branch -r 查看远端分支
  2. git branch -a 查看本地分支和远程分支
  3. git branch [branch-name] 新建分支,但不切换
  4. git checkout -b [branch] 新建分支,并切换
  5. git checkout [branch-name] 切换到指定分支
  6. git branch --set-upstream-to [remote-branch] [branch] 在现有分支和远端分支之间建立关系
  7. git branch 查看当前分支
  8. git branch -d <name> 删除分支(-D 强行删除)
  9. git merge <name> 合并某分支到当前分支
  10. git checkout -b dev origin/dev(将远程分支dev拉取到本地的dev[未建立])

解决冲突

同一份代码, 提交的结果不一样, 如何裁定?

  1. git pull(将远端服务器的代码拉取下来)
  2. git diff(查看不一致的位置,并且修改)
  3. 再次重复提交命令。

回到过去

利用HEAD回到过去
  1. git log(查看git日志)
  2. git reset --(hard/soft) commit_id

回到未来

  1. git reflog(查看所有的commit 和 reset 操作 包括已经删除的,git log不能查看已经删除的commit)
  2. git reset --(hard/soft) commit_id

git概念

  • 版本控制管理工具(控制和管理代码)
  • 集中式版本控制(有一台中心服务器用来控制和管理版本,各个终端通过这个服务器来协同合作),分布式版本控制(每个终端都控制和管理自己独立的版本,需要协同合作的时候相互推送自己的版本,但实质上分布式也通常通过一个充当中心服务器的终端来协同合作)
  • 版本库:使用git init / git clone后, 会在文件夹中生成一个.git的隐藏文件夹, 这个文件夹(.git)就是一个git的版本库。文件夹里有.git文件夹里的修改删除将会被git追踪。
  • git版本回退
  • 工作区和暂存区:文件夹里排除.git文件夹 的东西被称为 工作区,而这个.git文件被称为 版本库。
    工作区与版本库的关系

    提交操作的实质
  • 撤销修改:1. 这个修改未add到暂存区,
    撤销某个文件的修改

    。2.这个修改已经add到暂存区,
    先回退,再撤销
  • 添加远程库
  • 分支:
    分支示意图

    。HEAD始终指向你当前分支的最新版本。创建一个新的分支,只不过是在原有分支的情况下多建立一个指针指向当前分支。

  • 解决冲突:
    冲突merge示意图

    , 先进行merge, 如果两个版本有冲突的话, 将冲突的文件进行修改后add, commit,就自动合并了,然后选择性删除另一分支。

  • 使用fast-forward的merge结果

    不使用fast-forward的merge结果
  • 如果你在dev下开发一半,突然要切换到主分支,或者XX分支进行BUG修复,咋办呢?思路:1,先保存住工作区的内容 (git stash)。2,切换到某个分支(git checkout branch)。3, 搞出一个修复bug的分支(git checkout -b bugBranch)。4,解决问题,到主分支merge一下(git checkout branch、 git merge bugBranch)。5,继续开发你的dev(git checkout 、git status、 git stash pop)。
  • 当你clone一个项目的时候,git 会自动把本地的master分支和远程的master分支对应起来。远程仓库默认名字叫origin。
  • 多人协作小结
  • rebase TODO
  • 标签实质是一个commit,只不过名字比较好记。标签和一个commit一一对应。用来表示某个版本。
    标签小结1

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

推荐阅读更多精彩内容

  • 1,查看所有远程分支:%git branch -r 2, 拉取远程分支并创建本地分支git checkout -...
    will666阅读 2,054评论 0 18
  • git branch 查看本地所有分支 git status 查看当前状态 git commit 提交 git b...
    猿万阅读 5,028评论 1 45
  • 三大区域: 工作区 → 缓存区 → 本地仓库 一 、 使用 git config 命令进行配置: git ...
    Manchangdx阅读 2,836评论 0 2
  • Git 基础 基本原理 客户端并不是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来。这样一来,任何一处协同...
    __silhouette阅读 15,855评论 5 147
  • git常用命令 GIT常用命令备忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章阅读 8,456评论 1 26