git 使用总结

前言

网上与git相关的文章已经有很多了,其中有不少写的很优秀的文章,所以本篇对git的使用就不再详细赘述,本篇列出的是一些跟git相关的指令,与平时使用git时遇到的一些问题处理方法。

一、git仓库相关的网址

1、Git官网:https://github.com/
这个网站因为服务器在国外,所以访问一般比较慢,我们国内相应的有码云

2、码云官网:https://gitee.com/
可以很方便的将git上的仓库导入码云

3、阿里云:https://signin.aliyun.com/
这个也不错,不过企业版的要收费

二、熟悉git使用的网址

1、git简易指南:https://www.bootcss.com/p/git-guide/
看完这个git基本就能用起来了

2、git使用教程:https://www.cnblogs.com/tugenhua0707/p/4050072.html
这个就更详细,介绍了与其他版本管理(SVN)的区别,安装配置方法,以及指令使用介绍,图文并茂很详细~
看完这个对git就基本有了个较全面的认识,在实际工作中一般能用到的操作也都会了,嗯,一般的问题你也能解决了
https://www.runoob.com/git/git-tutorial.html这个也很不错!

3、git外卖网:http://cw.hubwiz.com/card/c/55d301543ad79a1b05dcc4e2/1/1/1/
之所以说这是个git外卖网,只是一个象形的说法,当你想看看的时候就上去看看,不看也没关系,跟点外卖一样

三、git配置指令

全局global配置

git config --global user.name ‘your-name’
git config --global user.email ‘your-email’

当前local仓库配置

git config --local user.name ‘your-name’ 
git config --local user.email ‘your-email’

查看global配置

git config --global -l	//-l实际是--list

查看当前local仓库配置

git config --local -l	//-l实际是--list

查看全部配置信息

git config -l		//先是系统级别的,然后是用户级别的,最后是仓库级别的信息

删除 global 配置

git config --unset --global 要删除的配置项

删除当前仓库配置

git config --unset --local 要删除的配置项

四、git常用指令

mkdir:            	XX (创建一个空目录 XX指目录名)
pwd:               显示当前目录的路径。
git init            把当前的目录变成可以管理的git仓库,生成隐藏.git文件。
git add XX          把xx文件添加到暂存区去。
git commit –m “XX”  提交文件 –m 后面的是注释。
git status          查看仓库状态
git diff  XX        查看XX文件修改了那些内容
git log             查看历史记录
git reset  –hard HEAD^ 或者 
git reset  –hard HEAD~ 回退到上一个版本(如果想回退到100个版本,使用git reset –hard HEAD~100 )
cat XX              查看XX文件内容
git reflog          查看历史记录的版本号id
git checkout — XX   把XX文件在工作区的修改全部撤销。
git rm XX           删除XX文件
git remote add origin https://github.com/tugenhua0707/testgit 关联一个远程库
git push –u      	(第一次要用-u 以后不需要) origin master 把当前master分支推送到远程库
git clone https://github.com/tugenhua0707/testgit  从远程库中克隆
git checkout –b dev 创建dev分支 并切换到dev分支上
git branch          查看当前所有的分支
git checkout master 切换回master分支
git merge dev       在当前的分支上合并dev分支
git branch –d dev   删除dev分支
git branch name     创建分支
git stash       	把当前的工作隐藏起来 等以后恢复现场后继续工作
git stash list      查看所有被隐藏的文件列表
git stash apply     恢复被隐藏的文件,但是内容不删除
git stash drop      删除文件
git stash pop       恢复文件的同时 也删除文件
git remote      	查看远程库的信息
git remote –v       查看远程库的详细信息
git push origin master  Git会把master分支推送到远程库对应的远程分支上

五、git常见问题

怎么查看所有分支/仓库(包括远端)

git branch -a	#显示所有分支
git branch -r	#只显示远程分支
git remote -v	#显示远程仓库

git 使用总结_第1张图片

怎么删除远程分支

git push origin --delete 远程分支名

git 使用总结_第2张图片

怎么删除本地分支

git branch -d 本地分支名

git 使用总结_第3张图片

本地分支与远程分支怎么进行关联

git checkout 远程分支名
#or
git checkout -b 本地分支名 远程分支名

git 使用总结_第4张图片

怎么关联多个远程仓库

git remote rm origin
git remote -v
//添加远程仓库并分别取别名为gitee与github 
git remote add gitee [email protected]:mstar666/my-code-new.git
git remote add github https://github.com/Mstar666/MyCode-lib.git
git remote -v
gitee   [email protected]:mstar666/my-code-new.git (fetch)
gitee   [email protected]:mstar666/my-code-new.git (push)
github  https://github.com/Mstar666/MyCode-lib.git (fetch)
github  https://github.com/Mstar666/MyCode-lib.git (push)
git push github master
git push gitee master

git 使用总结_第5张图片

怎么将新建的远程分支更新到本地

git fetch
git fetch 是获取,git push是推送

git 使用总结_第6张图片

版本回退之后又想还原怎么办,查看自己之前都干了啥

git reflog	//查看之前干了啥
#如下图所示,可以看到各个版本的commit id,所以我们可以根据这个id回到曾经的任何一个版本
git reset --hard 8da75cb(commit id)

git 使用总结_第7张图片

怎么将本地分支push到远程分支

有如下三种方式

git push origin HEAD:refs/for/master
git push origin 本地分支名:远程分支名
git push -u origin 本地分支名

怎么将头指针指向其它远程分支

git remote set-head origin 远程分支名
#some_branch就是你想要指向的分支

git 使用总结_第8张图片

如何将新创建的本地分支并更新到远程分支

git push -u origin 本地分支名
#如果没有远程分支的话会自动根据本地分支名创建新的远程分支

git 使用总结_第9张图片

怎么创建一个全新的分支,以分支的方式同时管理多个项目

#有时候,你需要启动个无历史记录的新分支, 作为一个全新的项目记录,可以用--orphan参数
git checkout --orphan 新的分支名

#比如我要弄一个mylib_v1.5版本的分支,作为一个独立的分支放着,就可以如下这么弄,
#然后再将新的分支推送到远端,可以看到新分支是没有历史记录的,是一个全新的分支

git checkout --orphan mylib_v1.5	#创建一个独立的mylib_v1.5分支
git add .							#将修改加入到暂存区
git commit -m "create v1.5 branch"	#提交到本地版本库
git push -u origin mylib_v1.5		#推送到远端,远端会自动创建一个mylib_v1.5分支

git 使用总结_第10张图片
git 使用总结_第11张图片

怎么添加第三方仓库,及关联父子仓库

在项目开发过程中可能会碰到需要使用第三方库或模块的情况,为避免重复开发与代码搬迁,最简单的办法把模块仓库当成主项目的子仓库,就相当于系统下的快捷方式或者软链

//  查看子仓库
git submodule
// 添加子仓库
git submodule add <仓库地址> <本地路径>
// 初始化子仓库
git submodule init
// 更新子仓库
git submodule update
// 拉取所有仓库
git submodule foreach git pull
// submodule默认是不在任何分支上的,它指向父仓库的submodule commit id
git submodule foreach git checkout master
// 带递归clone, 会将子仓库一起clone下来
git clone [email protected]:Mstar666/Test-orphan.git --recursive

git 使用总结_第12张图片
打开.gitmodules发现,其中就有子仓库的url,改变这个url就可以改变子仓库的所指位置
这里的父仓库是:[email protected]:Mstar666/Test-orphan.git
子仓库是:https://github.com/Mstar666/TestSubmodules.git
这样就将两个仓库进行了关联

注意点:
分支策略:首先master主分支应该是非常稳定的,也就是用来发布新版本,一般情况下不允许在上面干活,干活一般情况下在新建的new分支上干活,干完后,比如上要发布,或者说new分支代码稳定后可以合并到主分支master上来。

你可能感兴趣的:(辅助工具,git,github)