Git与GitHub

* 基本概念

本地仓库:本地电脑进行本地备份
远程仓库:远程服务器进行项目托管

* Git

工作区 - ->暂存区 - ->本地库
使用:安装成功后,在需要备份的文件夹右键点击(或进入该文件夹在空白处点击)Git bash here
git底层采用的SHA-1算法(hash算法之一),可用来验证文件是否有损坏

可以使用linux命令:

查看当前路径的所有文件:ll
查看当前路径的所有隐藏文件:ls -la
查看当前的绝对路径:pwd
查看某个文件:cat [文件路径]
新建文件并编辑:vim [文件名]

  • :wq  退出
  • 编辑已有内容文件时要设置 :set nu 显示行数才能编辑,否则只能查看

1. 初始化本地库

git init  生成.git文件,项目具备了本地管理的能力

2. 配置个人信息

git config --global user.name “tmy”    配置用户名
git config --global user.email “aaa”  配置邮箱

  • 优先级从高到低,依次如下:
    git config       仓库级别:只对当前仓库有效 (数据存储在 .git/config)
    git config --global    用户级别:对当前操作系统的登录用户的所有仓库有效(数据存储在 ~/.gitconfig)
    git config --system  系统级别:对当前操作系统的所有用户有效

3. 基本操作

3.1 查看状态

git status   查看暂存区、工作区状态

3.2 添加文件

git add .         添加所有文件(将工作区的 新建/修改 添加到暂存区) 
git add [文件名]  添加指定文件(*.vue 代表所有vue后缀)

3.3 提交版本

git commit -m “提交说明”      提交一个新的版本(将暂存区的内容提交到本地库)
git commit -m “提交说明” [文件名]  提交指定文件
git commit --amend -a        将修改的内容添加到最近的版本,不生成新的版本(版本补录)

3.4 查看历史记录

git log --oneline      查看精简版日志,hash值即索引只显示后7位(常用
git log --pretty=oneline  hash值会完整显示
git log - 5        显示最近5个版本
git reflog          会显示:HEAD@{移动到当前版本需要多少步}
说明:版本数过多,多屏显示控制方式 - - 空格向下翻页;b 向上翻页;q 退出

3.5! 前进后退

git reset [7位hash值] --hard   基于索引值操作(推荐
git reset HEAD^ --hard      只能后退,n个^表示后退n个版本
git reset HEAD~n --hard     只能后退,表示后退n个版本

  • reset命令的三个参数对比:
    –soft:仅在本地库移动HEAD指针(撤销commit操作
    –mixed:在本地库移动HEAD指针,并重置暂存区
    –hard:在本地库移动HEAD指针,并重置暂存区和工作区(撤销push操作【 推荐】
3.6!强制提交并覆盖远程仓库

git push -f origin 分支名

3.7!对当前分支修改内容进行暂存
  • 储存修改    git stash
  • 查看存储信息  git stash list
  • 恢复修改
  1. git stash apply  恢复后,stash中的内容未删除
  2. git stash drop    恢复后,stash中的内容删除【实践发现内容会被删除但并不会被恢复】

注意:没有在git 版本控制中的文件(eg. 新增文件),是不能被git stash 存起来的。
   可先执行git add 再git stash

4. 分支操作

4.1 创建分支
  • git branch [分支名]
4.2 查看分支和历史记录
  • git branch -v
4.3 切换分支
  • git checkout [分支名]
创建并切换分支 git checkout -b [分支名]
4.4 删除分支
  • git branch -d [分支名]
4.5 合并分支
  1. 先切换到要被修改的分支上 eg.master 合并 dev
    git checkout master
  2. 再进行合并
    git merge dev
4.6 重命名
  • git branch –m [当前分支名] [新分支名]

5. 标签管理 - - 区分不同版本

给仓库历史中的某一个提交打上标签,以示重要

  • git tag  查看已有的标签(加上-l命令可使用通配符来过滤tag eg.git tag -l “v1.2*”)
  • git tag -a [版本号] -m “提交信息”        创建附注标签
  • git show [版本号]               显示打标签者的信息和具体的commit信息
  • git tag -a [版本号] [精简版本号] -m "提交信息  追加附注标签
  • git push origin [版本号]            将tag同步到远程库
  • git push origin --tags             推送本地所有tag
  • git tag -d [版本号]                 本地删除某个tag
  • git push origin :refs/tags/[版本号]        远程删除某个tag

*Git与GitHub


                            团队协作(项目经理和码农)

项目经理(A)

  1. 先用Git创建本地库,再push到远程仓库
    git remote add origin [远程仓库地址]  将本地库与远程库关联起来,并设置变量origin指代远程库
    git remote -v             查看远程库地址
    git push origin [远程库分支名]        将代码推送到远程库的某个分支
    !(ALL)push为写操作要进行身份验证 - - 输入当前用户的github账号密码
     输入一次后,账号信息存储在 控制面板 -->所有控制面板项 -->凭据管理器 的Windows凭据中,下次push不用再输入
     clone、pull操作是读操作,不需要登录
  2. 码农push新内容到远程库后,项目经理拉取远程库内容到本地
    git pull origin [远程库分支名]   拉取远程库内容到本地
    (了解)pull = fetch + merge    先下载再合并
    git fetch origin [远程库分支名]  抓取远程库内容下载到本地,工作区内容未更新,此处可查看更新内容进行判断是否要合并 – 先切换到远程库分支(git check out origin/dev),再查看文件内容(cat [文件路径])
    git merge origin/远程库分支名  本地库当前分支合并远程库分支

码农(B)

  • 先从远程库复制代码到本地,修改后再push到远程库(项目经理邀请码农并且码农接收邀请后才能push)
    git clone [远程仓库地址]     把远程库的文件夹完整下载到本地;初始化本地库;创建远程地址别名origin(指代A的远程库)
    邀请流程:A在"setting"中选择"Manage access",然后输入B的账号,生成邀请链接发送给B;B登录自己的github账号,在浏览器地址栏访问邀请链接,点击接受。
    git push origin [远程库分支名]  (输入自己的github账号密码)远程库该分支内容会更新

解决冲突

  • 产生情况:如果不是基于github远程库最新版本所做的修改,不能推送,必须先拉取;拉取下来后如果有冲突,则按照“分支冲突解决”即可。
    团队协作中先拉取再推送(先pull再push
    实际情景:A修改了某一行代码并成功推送到了远程库,但B不知道,B在本地修改代码提交后推送到远程库会报错,必须先从远程库拉取最新版本到本地,若他们修改的是同一行代码,则会产生冲突。

                                  跨团队协作

第三方(C)

  1. 第三方登录github账号访问远程库地址(由项目经理发送),然后点击"fork",即复制完整项目到自己的远程库【C远程】
  2. clone远程库内容到本地,修改提交后推送到自己的远程库(操作同码农)【C本地】
  3. 在远程库中发起pull request(New pull request -->Create pull request)【C远程】
  4. 项目经理登录github账号,点击"Pull request",可看到第三方发过来的消息(两者可进行交流),点击"File changed"对第三方提交的东西进审核【A远程】
  5. 审核通过,回到对话界面进行合并操作(点击"Merge pull request"并输入本次操作的日志信息)【A远程】
  6. 最后把远程库代码拉取到本地【A本地】
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值