一. Git简介
GitHub是一个非常流行的代码托管平台,基于Git版本控制技术实现,许多开源项目都在GitHub上发布。同时又是一个活跃的开发者交流社区,可以在上面和许多技术牛人学习和交流。
Git是目前世界上最先进的分布式版本控制系统,由Linux系统之父在2005年用C语言开发。
Git的功能:版本控制,包括版本管理、远程仓库、分支协作。
- 版本管理:可以覆盖之前的版本,迭代最新的版本,过去的版本在Git上也可以查看和切换。
- 远程仓库:可以从Git上clone到不同的本地上,也可以在本地提交到远程去。
- 分支协作:把一份代码或文件拷贝成多个分支,多人在不同分支上做修改,通过分支合并,把结果进行合并。
二. 功能原理
Git版本控制系统由工作区、缓存区、本地仓库组成。
Git跟踪的是文件的修改而不是全部的文件。
Git擅长管理代码等文本文件,不擅长管理图片等二进制文件。
三. Git上传及克隆
首先安装配置Git。windows下载安装后可以在Gitbash中执行git命令,也可以在Jupyter Notebook中执行
1. 配置用户名和邮箱
!git config --global user.name 'cymx66688'
!git config --global user.email '12345@163.com'
2. 创建仓库git-learn
创建目录
%mkdir git-learn
%cd git-learn
!git init
3. 提交文件
创建readme.txt文件
!echo 'hello world'>>readme.txt
添加到缓存区
# git add . :他会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件。
# git add -u :他仅监控已经被add的文件(即tracked file),他会将被修改的文件提交到暂存区。add -u 不会提交新文件(untracked file)。(git add --update的缩写)
# git add -A :是上面两个功能的合集(git add --all的缩写)
!git add -A
提交, -m做注释
!git commit -m'add readme.txt'
4.推送远程仓库
要首先在Git上添加一个远程仓库,右上角+号选择Newrepository,填上repositoty name
!git remote add origin https://github.com/cymx66688/git-learn.git
!git push -u origin master
5. 克隆远程
git上左上角搜索想要找的内容,点击链接,选择右上角的fork,就直接克隆到自己的git上了。
克隆到本地
! git clone https://github.com/cymx66688/Git-Tutorial-By-liaoxuefeng
四. Git常用命令
命令列表 | 示范1 | 示范2 | 示范3 | |
安装配置 |
config(配置信息) help(帮助信息) status(当前状态) |
设置用户名: git config --global user.name'cymx66688' |
获取常用的git命令列表: git;git help 查看当前工作区和暂存区状态,获取提示: git status |
|
版本记录 |
init(创建仓库) add(提交暂存区) commit(提交修改) reset(版本回退) checkout(撤销修改) diff(比较文件) log(版本列表) reflog(版本历史) |
git init git add readme.txt git add -A 修改覆盖上一次commit git commit -amend 先暂存再提交 git commit -a -m'modify readme.txt' |
git reset --head HEAD^ git reset a23b5 撤销修改: git checkout --readme.txt |
查看工作区文件与暂存区文件区别: git diff readme.txt 查看工作区文件和HEAD文件区别: git diff --HEAD readme.txt 查看暂存区文件与HEAD文件区别: git diff --cached readme.txt 查看两个版本某一文件的区别: git diff a458b d23e5 --readme.txt |
远程仓库 |
remote(设置远程) push(推送远程) clone(克隆远程) fetch(更新远程) pull(合并远程) |
使用ssh地址添加GitHub远程库: git remote add github git@github.com:cymx66688/python.git 使用url地址添加远程库: git remote add origin https://github.com/cymx66688/python.git |
git remote -v 推送本地库至远程库origin的master分支: git push -u origin master 将远程仓库克隆到本地: git clone heeps://github.com/cymx66688/python.git |
取回origin的develop分支与当前master分支合并(或会冲突): git pull origin/develop:master 获取origin的develop分支跟新到本地: git fetch origin develop |
分支协作 |
branch(设置分支) checkout(切换分支) merge(合并分支) rebase(重演分支) stash(储藏管理) tag(标签管理) |
git branch git branch develop git checkout master 创建并切换到名称为feature的新分支: git checkout -b feature |
HEAD处于develop分支,合并feature分支(或会冲突): git merge --no-ff -m'merge feature' feature 使用当前所在分支作为base重演develop分支(或会冲突): git rebase develop |
git stash; git stash pop git tag; git tag v1.0; git tag v0.9 a2543d git push origin v1.0 删除远程标签(先删本地,再push): git tag -d v0.9 git push origin :refs/tags/v0.9 |