Git 使用笔记

简介: Git 使用笔记

简介

定义

Git,最先进的分布式版本控制系统之一,最初是由Linux之父Linus为了更好管理开源Linux系统而开发的一个软件;


下载:https://npm.taobao.org/mirrors/git-for-windows/


安装


Linux:sudo apt-get install git

Windows、macOS通过官网下载安装包后进行安装即可;

设置


安装完成后,设置署名和邮箱:



$ git config --global user.name "user name"
$ git config --global user.email "example@email.com"
# 可选,让Git命令行显示颜色
$ git config --global color.ui true

版本库创建及管理

如何创建版本库


先创建一个空文件夹,Windows下不再介绍,Linux以及macOS下可通过$ mkdir gitlearn命令创建;

通过$ git init将刚才创建的目录变为可管理的仓库;



如何将文件添加到版本库


在刚才创建的空文件夹中,添加你自己的文件,以readme.md为例;


用git add命令将文件添加到仓库;


# 添加单一文件

$ git add readme.md

# 添加所有文件

$ git add .


用git commit将文件提交到仓库;


$ git commit -m "this is a readme.md file."


如何查看仓库修改的内容


用git status查看仓库当前状态;


用git diff filename查看文件具体修改的内容;


$ git status

$ git diff readme.txt


git log查看最近到最远的提交日志


$ git log --pretty=oneline


回退之前的版本,先用git log查看提交历史,以确定commit_id,回退后,当想要重返未来版本时,用git reflog查看命令历史,从而确定重返版本commit_id,HEAD指向当前版本,为了在版本的历史之间穿梭,使用命令git resrt --hard commit_id


$ git reset --hard HEAD^


直接丢弃工作区的某文件修改内容时,使用命令git checkout -- filename


$ git checkout -- readme.md


删除文件,先在工作区将文件删除后,然后使用命令git rm将版本库中文件删除,然后通过git commit提交


$ git rm readme.md

$ git commit -m "delete readme.md"


远程仓库

本地Git和远程Github相连接,可以进行如下操作:


确定.ssh目录下是否存在文件id_rsa和id_rsa.pub,有则复制id_rsa.pub中内容明将其添加到Github中的SSH Key,建立两者联系,可以在本地管理,


不存在则通过如下命令生成;


$ ssh-keygen -t rsa -C "example@email.com"


如何添加远程仓库


在本地通过如下命令建立本地仓库与远程仓库进行管理,然后就可以将本地仓库内容推送到Github仓库;


$ git remote add origin git@github.com:cunyu1943/LeetCode.git


从远程仓库克隆岛本地:


$ git clone https://github.com/cunyu1943/LeetCode.git


将本地仓库内容推送到远程仓库;


# 第一次推送

$ git push -u origin master

# 之后的推送

$ git push origin master


分支管理

创建并切换分支


$ git switch -c dev

# 等价命令

$ git checkout -b dev

# 等价命令

$ git branch dev

$ git checkout dev


查看当前分支,前边标有∗ *∗代表当前分支,切换回master分支;


$ git branch

$ git checkout/switch master


将dev分支合并到master分支;


$ git merge dev


删除分支;


$ git branch -d dev


强制删除未合并分支;


$ git branch -D dev


查看分支合并图


$ git log --graph


多人协作

查看远程库信息:git remote -v;


本地新建分支若不推送到远程,则对其他人不可见;


本地推送到远程库,git push origin branch-name,若推送失败,则用git pull抓取远程新提交;


$ git push origin master

# 若推送失败,则先执行如下命令

$ git pull


本地创建和远程分支对应分支,git checkout -b branch-name origin/branch-name


$ git checkout -b dev origin/dev

1

建立本地分支和远程分支的关联,git branch --set-upstream branch-name origin/branch-name


$ git branch --set-upstream dev origin/dev


从远程抓取分支则使用git pull,若有冲突,则先解决处理后再处理;


标签管理

切换到需要打标签的分支git switch branch-name;


打标签并查看;


# 打一个名为"v1.0"的标签

$ git tag v1.0

# 查看所有标签

$ git tag


查看标签信息,git show <tagname>;


$ git show v1.0


创建带有说明的标签,用-a打标签名,-m指定说明文字;


$ git tag -a v1.0 -m "version 1.0 released"


删除标签,本地使用git tag -d <tagname>,远程则使用git push origin :refs/tags/<tagname>


# 删除本地标签

$ git tag -d v30.0

# 删除远程标签

$ git push origin :refs/tags/v30.0


将标签推送到远程git push origin <tagname>


# 推送某一标签

$ git push origin v1.0

# 推送所有标签

$ git push origin --tags


建立 Github 和 Gitee 共同远程连接

删除某一关联的远程库,git remote rm <basename>


$ git remote rm origin

1

关联Gitee远程库,git remote add <basename> git@https://gitee.com/<username>/<respName>.git


$ git remote add gitee https://gitee.com/cunyu1943/LeetCode.git

1

关联Github远程库,git remote add <basename> https://github.com/<username>/<respName>.git


$ git remote add github https://github.com/cunyu1943/LeetCode.git

1

推送到Gitee和Github


# 推送到Gitee

$ git push gitee master

# 推送到Github

$ git push github master


其他小技巧

忽略特殊文件


此时需要编写.gitignore文件,文件要放到版本库中,且可以对.gitignore进行版本管理;


配置命令别名


# 举例

$ git config --global alias status st

$ git config --global alias checkout co

$ git config --global alias commit cm


目录
相关文章
|
8月前
|
Shell 开发工具 git
Git笔记(三)---- Git分支操作
Git笔记(三)---- Git分支操作
91 0
|
6月前
|
Shell 开发工具 git
[笔记]Git 介绍以及入门基本功能(一)
[笔记]Git 介绍以及入门基本功能
|
3月前
|
Shell 开发工具 数据安全/隐私保护
git笔记
git笔记
31 0
|
6月前
|
Shell 开发工具 git
[笔记]Git 介绍以及入门基本功能(二)
[笔记]Git 介绍以及入门基本功能(二)
|
7月前
|
Shell 网络安全 开发工具
git版本管理加合并笔记
git版本管理加合并笔记
|
8月前
|
安全 程序员 开发工具
代码版本管理笔记 | Python 程序员也应该会的 Git 分支操作
代码版本管理笔记 | Python 程序员也应该会的 Git 分支操作
128 0
|
8月前
|
数据采集 安全 JavaScript
代码版本管理笔记 | Python 程序员也应该会的 Git 进阶操作
代码版本管理笔记 | Python 程序员也应该会的 Git 进阶操作
118 0
|
8月前
|
数据采集 缓存 安全
代码版本管理笔记 | Python 程序员也应该会的 Git 基础操作
代码版本管理笔记 | Python 程序员也应该会的 Git 基础操作
|
8月前
|
Shell 开发工具 git
Git笔记(四)---- Git与IDEA(JB)
Git笔记(四)---- Git与IDEA(JB)
73 0
|
8月前
|
Shell 开发工具 git
Git笔记(二)---- Git的基础操作
Git笔记(二)---- Git的基础操作
55 0

相关实验场景

更多