Git全套详细知识讲解(安装、常用指令、分支管理、远程仓库) | 您所在的位置:网站首页 › 女性偏见 › Git全套详细知识讲解(安装、常用指令、分支管理、远程仓库) |
Git的概述
什么是Git
Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。 实际运用场景 备份 代码还原 协同开发 追溯问题代码的编写人和编写时间 版本控制方式集中式版本控制工具:版本库是集中放在中央服务器中,必须联网才能工作,个人修改后提交给中央版本库。比如:SVN和CVS 分布式版本控制工具:分布式版本控制系统没有“中央服务器”,每个人的电脑都是一个完整的版本库,不需要联网就可以工作,多人协作只需要各自的修改推送给对方,就能互相看到对方的修改了。比如:Git 优点 速度快 简单的设计 对非线性开发模式的强力支持 可以高效的管理Linux内核一样的超大规模项目 工作流程
clone(克隆):从远程仓库中克隆代码到本地仓库。fetch(抓取):从远程库,抓取到本地仓库,不进行任何合并动作(一般少很少用) checkout(检出):从本地仓库中检出一个仓库分支如何进行修正 add(添加):在提交前先将代码提交到暂存区 commit(提交):提交到本地仓库。本地仓库中保存修改的各个历史版本 pull(拉取):从远程仓库拉到本地库,自动进行合并(merge),然后放在工作区,相当于fetch+merge push(推送):修改完成后,需要和团队成员共享代码时,将代码推送到远程仓库 下载地址:Git - Downloads (git-scm.com) 安装成功后鼠标右击后出现: 注: Git GUI:Git提供的图形界面工具 Git Bash:Git提供的命令行工具 获取本地仓库打开Git Bash创建一个新的git仓库: mkdir git-test01 在目录中执行 git init 就可以创建一个 Git 仓库了,这时候可以在文件夹中可以看到.git文件,但是.git文件默认是隐藏的,需要将将window设置显示隐藏的项目,如图: git-log的配置:为了更好的查看日志,精简的方式看日志 在系统用户下创建一个.bashrc文件 文件里面的内容: //用于输出git提交日志 alias git-log='git log --pretty=oneline --all --graph --abbrev-commit' //用于输出当前目录所有文件及基本信息 alias ll='ls -al'然后打开git bush输入:source ~/.bashrc 配置成功后的效果图对比:git log 和 git-log 几乎每一种版本控制系统都以某种形式支持分支,一个分支代表一条独立的开发线。 使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。 查看分支:git branch 添加一个分支:git branch 分支名 分支直观的展示:git-log 切换分支:git checkout 分支名,其中HEAD表示的就是在当前的分支 添加分支并且切换到该分支:git checkout -b 分支名 合并分支 合并分支一般都是把其他分支添加到master上,所以首先需要切换到master分支 输入:git merge 分支名 当想删除分支的时候可以用指令:git branch -d 分支名 Git远程仓库如果想通过 Git 分享你的代码或者与其他开发人员合作。 你就需要将数据放到一台其他开发人员能够连接的服务器上。一般用GitHub或者gitee、gitlab 创建远程程库以gitee为例,创建一个仓库 生成密钥 ssh-keygen -t rsa然后不断回车,如果公钥已经存在会自动覆盖 获取密钥 cat ~/.ssh/id_rsa.pub把生成的公钥粘贴到gitee 查看是否配置成功:ssh -T [email protected] 配置gitee为例: 添加远程仓库(origin后面跟上远程仓库的地址): git remote add origin https://gitee.com/gao-bintao/git_test.git查看是否添加成功: git remote然后刷新gitee就可以看到上传的文件了 把远程的仓库克隆到本地仓库 git clone 项目的地址 抓取和拉取抓取: git fetch [remote name] [branch name] 将仓库里的更新都抓取到本地,不会进行合并 如果不指定远程名称和分支名,则抓取所有分支拉取:git pull [remote name] [branch name] 将远程仓库的修改拉到本地并自动进行合并,相当于fetch+merge 如果不指定远程名称和分支名,则抓取所有并更新当前分支 |
CopyRight 2018-2019 实验室设备网 版权所有 |