前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Github | 学习Git&Github

Github | 学习Git&Github

作者头像
Justlovesmile
发布2021-12-13 21:47:00
1.6K0
发布2021-12-13 21:47:00
举报
文章被收录于专栏:云+分享云+分享

关于Git与Github的基础知识的笔记

GitHub与Git区别

  • Git属于分散型版本管理系统,开发者使用Git将源代码存入名叫“Git仓库”的资料库中并加以使用。
  • GitHub事在网络上提供Git仓库的一项服务,使用GitHub可以实现多人协作

Git初始设置

git config命令的–global参数

  • 设置Git提交时的姓名与邮箱 git config –global user.name “justlovesmile” git config –global user.email “865717150@qq.com“
  • 让命令的输出具有更高的可读性 $ git config –global color.ui auto

创建版本库

  • 把这个目录编程Git可以管理的仓库 $ git init
  • 将文件添加到仓库缓冲区 $ git add hello_world.php
  • 添加说明并正式提交 $ git commit -m “wrote a file” [master (root-commit) a4207ca] wrote a file ?1 file changed, 3 insertions(+) ?create mode 100644 hello_world.php
  • 查看提交日志

(1)$ git log(+文件名)

commit a4207cab55e08e29847031903c3d885f522483d3 (HEAD -> master) Author: justlovesmile 865717150@qq.com Date:?? Thu Jun 13 11:04:29 2019 +0800 ??? wrote a file

(2)$ git log –pretty=oneline

db0644b6e8c15385d34c80b44fab5a2124289526 (HEAD -> master) add one line 5022ed9f401a7a95b2c325d1f57ef7c9c291e860 wrote a read.txt a4207cab55e08e29847031903c3d885f522483d3 wrote a file

(3)$ git log -p查看文件改动

  • 查看仓库状态 $ git status
  • 查看修改的不同之处 $ git diff read.txt
  • 回退版本到上一个版本 git reset –hard HEAD^(回退后就看不见之前那个了,但是如果还没关命令窗口可以向上查找commit id然后再?) git reset –hard 1094a(id不一定要写全)
  • 使用cat查看文件内容 $ cat read.txt
  • Git提供了查看你的每一次命令的方法 $ git reflog
  • 丢弃工作区修改(当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时) $ git checkout – read.txt
  • 撤销暂存区的修改(当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD ,就回到了工作区的修改,再执行?) $ git reset HEAD read.txt
  • 删除文件 $ rm read.txt
  • 删除版本库 $ git rm read.txt
  • 误删恢复 (用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”,但是会失去最近一次提交后的修改内容) $ git checkout – test.txt

远程仓库

  • 创建SSH Key $ ssh-keygen -t rsa -C “youremail@example.com
  • 查看id_rsa.pub文件,并复制 $ cat ~/.ssh/id_rsa.pub
  • 然后再在github中添加ssh key
  • 输入命令测试 $ ssh -T git@github.com
  • 在github中创建一个git仓库
  • 关联远程库 $ git remote add origin git@github.com:Justlovesmile/Hello-World.git
  • 将本地库的所有内容推送到远程库上 $ git push -u origin master
  • 从现在起,只要本地作了提交,就可以通过命令: $ git push origin master
  • 克隆远程库到本地库 $ git clone git@github.com:Justlovesmile/practice.git

分支管理

创建于合并

  • 创建dev分支,并切换 git checkout -b dev(即 git branch dev
  • 查看分支 $ git branch
  • 在切换到分支后,可以在分支上继续修改文件,再提交
  • 然后切回master $ git checkout master 此时,master上看不见分支
  • 将分支的工作结果与master合并 $ git merge dev
  • 合并完成后删掉分支 $ git branch -d dev

出现冲突的情况

  • 如果创建了分支,并进行了修改与提交
  • 而master也进行了提交,那么两者就不能直接进行合并,需要检查冲突手动修改 $ git status(会告述你哪里冲突了)
  • 查看合并情况图 $ git log –graph –pretty=oneline –abbrev-commit

分支管理

  • 一般master仅用来发布新版本,其他工作,修改在分支上进行
  • 合并分支时,加上–no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。

$ git merge –no-ff -m “merge with no-ff” dev

bug分支

  • 当工作只进行了一半,但是又要修改另外的bug时,可以将工作现场先储藏起来 $ git stash
  • 然后再创建一个分支,例如叫issue,在这上面修改bug
  • 再提交,然后切换回master合并,最后删除这个分支
  • 切回之前工作的分支,恢复工作现场

强制删除分支

  • 如果分支中的修改已经提交,但是发现不能加到master中,并且,该修改属于机密,所以你需要强制删除该分支(因为系统会提示你该修改未合并,使用D)

$ git branch -D feature

多人协作

  • 查看远程库的信息 $ git remote origin
  • 查看远程库的详细信息 $ git remote -v origin? git@github.com:Justlovesmile/Hello-World.git (fetch) origin? git@github.com:Justlovesmile/Hello-World.git (push)
  • 推送master主分支 $ git push origin master
  • 推送其他分支 $ git push origin dev
  • 抓取分支 $ git clone git@github.com:Justlovesmile/Hello-World.git
  • 多人协作的工作模式通常是这样:
    • 首先,可以试图用git push origin 推送自己的修改;
    • 如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
    • 如果合并有冲突,则解决冲突,并在本地提交;
    • 没有冲突或者解决掉冲突后,再用git push origin 推送就能成功!
  • 如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch –set-upstream-to origin/。

标签

创建标签

  • 切换到需要打标签的分支上 $ git branch
  • dev master $ git checkout master Switched to branch ‘master’
  • 创建标签 $ git tag v1.0
  • 给对应的版本打上标签 $ git tag v0.9 f52c633
  • 标签它是按字母排序的,查看标签 $ git show v0.9commit f52c63349bc3c1593499807e5c8e972b82c8f286 (tag: v0.9) Author: Michael Liao askxuefeng@gmail.com Date: Fri May 18 21:56:54 2018 +0800 add merge diff –git a/readme.txt b/readme.txt
  • 创建带有说明的标签,用-a指定标签名,-m指定说明文字: $ git tag -a v0.1 -m “version 0.1 released” 1094adb

操作标签

  • 删除标签 $ git tag -d v0.1
  • 推送某个标签到远程 $ git push origin v1.0
  • 一次性推送全部尚未推送到远程的本地标签:$ git push origin –tags
  • 如果标签已经推送到远程,又想要删除标签,先从本地删除 git tag -d v0.9然后再从远程删除 git push origin :refs/tags/v0.9

github

  • 对于感兴趣的项目,先点Fork克隆仓库,然后再从自己的账号下clone git clone git@github.com:michaelliao/clone.git

码云gitee.com

  • 国内的Git托管服务

自定义git命令

  • 自定义st表示status $ git config –global alias.st status
  • 修改在配置文件.gitconfig中
本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-07-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • GitHub与Git区别
  • Git初始设置
    • git config命令的–global参数
      • 创建版本库
      • 远程仓库
      • 分支管理
        • 创建于合并
          • 出现冲突的情况
            • 分支管理
              • bug分支
                • 强制删除分支
                  • 多人协作
                  • 标签
                    • 创建标签
                      • 操作标签
                      • github
                      • 码云gitee.com
                      • 自定义git命令
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
                      http://www.vxiaotou.com