git配置及常见命令
首先我们需要本地Git与远程GitHub连接的建立,只有将Git本地与远程的GitHub建立了连接以后我们本地的项目才能上传至远程服务器
**
配置流程:
**
1、在git中配置全局的github账号信息:
git config --global user.name "username"
git config --global user.email "email"
2、Git终端的配置生成公钥文件,用来连接github。在git终端输入如下命令,然后连续敲3个回车即可:
ssh-keygen -t rsa -C "邮箱地址"
3、本地的配置
3.1 命令执行成功后,在本地电脑的名为.ssh的目录下找到名为id_rsa.pub的文件,打开这个文件后将里面的内容先复制下来;
3.2 这里还需要进行的一步操作是:为了防止git连接失败,可在.ssh文件夹下新建一个无后缀的名称为config的文件,在里面加入下面代码:
Host github.com
User git
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Port 443
4、远程的配置进入到GitHub的官网,点击右上角图标下的settings:然后,在出现的左边的settings栏目中选择SSH and GPG Keys:然后在出来的左边的框框中选择 New SSH:其中Title可以随意写个名字,Key里面的内容需要将3.1步中复制的id_rsa.pub文件中的内容拷贝进去最后点击Add即可。
5、验证连接是否成功建立在git终端上输入如下命令:
ssh -T git@github.com
出现下述状态即为成功
**
Git简单介绍及常见命令
**
说明:
workspace:工作区
staging area:暂存区/缓存区
local repository:版本库或本地仓库
remote repository:远程仓库
一个简单的操作步骤:
git init
git add .
git commit
我们经常需要多个人共同完成一个项目,使用git可以很清晰明了的知道每个人上传的改动,因此我们需要配置好自己的用户名方便他人知道是谁更改了项目
1、查看用户名和邮箱地址:
git config user.name
git config user.email
2、修改用户名和邮箱地址
git config --global user.name "xxxx"
git config --global user.email "xxxx"
3、如果我们是直接拉下代码库
git clone 链接名
那么我们这个文件本身已经就是一个git文件了
4、如果我们是本地已有的文件去与远程代码库相关联的话,需要执行以下步骤:
cd 文件/ #即需要进入这个文件
git init #将文件初始化为git文件
#与远程代码库添加链接
git remote add origin 代码库链接
#后续提交过程都一样
5、查看本地分支
git branch
注:名称前面加* 号的是当前的分支
6、在本地创建新的分支并切换到该分支上
git checkout -b private
等价于
git branch private #在本地新创建private分支
git checkout private #切换到新分支上
7、查看远程分支
git branch -r
8、查看所有的分支(包括本地分支以及远程分支)
git branch -a
加上-a参数可以查看远程分支,远程分支会用红色表示出来(如果你开了颜色支持的话)
9、查看本地分支与远程分支的映射关系
git branch -vv
10、重命名本地分支
git branch -m <oldbranch> <newbranch>
11、删除本地分支
git branch -d branchname
12、删除远程分支
git branch -r -d origin/branchname
git push origin:branchname #删除后还需要推送到远程
13、查看当前远程仓库信息
git remote -vv
14、远程新建分支后,本地查看不到,使用以下命令同步
远程新建分支,本地在未创建此新分支前便已经clone下来,现在本地查看分支时没有发现远程新建的 分支,使用如下命令更新,即可查看远程新建的分支
git remote #列出远程主机
git remote update origin --prune #更新远程主机origin整理分支
15、当我们手动在远程分支上建立了一个新的分支,本地也有一个新的分支时,想要本地的新分支提交到这个远程的新分支上时,我们需要新建本地分支与远程分支的关联
git branch --set-upstream-to=origin/远程分支名 本地分支名
eg:我的本地新建了一个分支 hui 远程新建了一个分支v2 把二者进行关联起来
git branch --set-upstream-to=origin/v2 hui
或者
git branch -u orgin/v2 hui
如果此时已经在本地hui分支上,可以直接
git branch -u origin/v2
输出:Branch ‘hui’ set up to track remote branch ‘v2’ from ‘origin’.
16、如果本地有分支,但是远程没有分支对应,如何把本地的分支提交到远程
假设有本地分支dev_name,远端没有该分支。此时push或者pull时,就不知道跟踪的是哪个分支?使用以下指令:
git push --set-upstream origin dev_name
推送后远程也会出现dev_name分支,二者建立连接,注意此时的dev_name并不是你给远程分支起的名字,而是根据本地的分支推送上去的远程分支。后续push和pull时,就不用指定分支。
17、本地没有某个分支,远程仓库有此分支,怎样拉取远端分支代码到本地分支?
git checkout --track origin/branch_name
此时,本地会自动创建分支branch_name与远端分支同名,并与远端分支branch_name关联。
建议在弄分支的时候最好本地与远程的名字相同 便于区别
18、如果我们的本地文件已经关联了远程代码仓库,现在想关联新的代码仓库
一种方法是将原来的远程仓库重新命名,另一种是删除原来的远程仓库;二者选其一,然后再新关联现在的远程仓库即可
#方法一:重命名原来的远程仓库
git remote rename origin old-origin#方法二:删除原来的远程仓库
git remote rm origin#上面的二选一,然后重新指定新的源
git remote add origin [url]
19、撤销本地分支与远程分支的映射关系
git branch --unset-upstream
此时,当前的本地分支与远程分支解除关系
20、Git在本地新建分支后,可做远程分支关联。关联目的是,如果在本地分支下进行
pull 和push操作时 ,便不需要指定远程的分支。
21、新建本地分支与远程分支相关联
git checkout -b gpf origin/gpf # 新建本地分支gpf与远程gpf分支相关联
22、执行push推送代码
git push origin 本地分支名:远程分支名
23、本地分支push到远程分支
本地分支 v2 远程分支r2
如果没有建立关系时
git push origin v2:r2
或者
git push origin r2 #本地已经在v2分支上
如果已经建立关联 且目前的本地分支就在v2上 我们可以直接使用
git push
24、多人合作提交代码
在我们自己提交之前如果有别人提交了代码 我们需要先进行合并代码 再进行push
方案一:合并远程分支代码
git fetch origin
(git remote update有的时候可能需要同步一下远程和本地)
git merge origin/远程分支名
方案二:合并远程分支代码
git pull origin 远程分支名
(PS:方案一和方案二选择一个即可)
执行push推送代码
git push origin 本地分支名:远程分支名
25、git fetch 与 git pull的区别
git fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。
而git pull 则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突。
26、git fetch的常见命令如下:
git fetch <远程主机名> //这个命令将某个远程主机的更新全部取回本地,一般远程主机名为origin
git fetch <远程主机名> <分支名> //注意之间有空格,返回的是特定分支的更新
例如:返回origin主机的master分支的更新 git fetch origin master
取回更新后,会返回一个FETCH_HEAD ,指的是某个branch在服务器上的最新状态,我们可以在本地通过它查看刚取回的更新信息:
git log -p FETCH_HEAD
可以看到返回的信息包括更新的文件名,更新的作者和时间,以及更新的代码(红色[删除]和绿色[新增])。
我们可以通过这些信息来判断是否产生冲突,以确定是否将更新merge到当前分支。
如果我们需要合并的话执行以下代码
git merge FETCH_HEAD
总结:fetch合并到分支需要两步
git fetch origin master //从远程主机的master分支拉取最新内容
git merge FETCH_HEAD //将拉取下来的最新内容合并到当前所在的分支中
27、git pull的常见用法
将远程主机的某个分支的更新取回,并与本地指定的分支合并
git pull <远程主机名> <远程分支名>:<本地分支名>
如果需要合并的本地分支就是目前的分支,则后面的本地分支名可以省略
28、还原代码至某个版本
git reset --hard 版本号
如果不加版本号,默认恢复上一个版本
29、合并分支到master上
首先切换到master分支上
git checkout master
如果是多人开发的话 需要把远程master上的代码pull下来
git pull origin master
然后我们把dev分支的代码合并到master上
git merge dev
30、查看状态
git status
31、git配置的一些其他的命令
git status # 查看状态
git log # 查看提交历史
git config core.ignorecase false # 设置大小写敏感
git config --global user.name "YOUR NAME" # 设置用户名
git config --global user.email "YOUR EMAIL ADDRESS" # 设置邮箱
32、git的提交
git diff # 查看变更内容
git add . # 跟踪所有改动过的文件
git add # 跟踪指定的文件
git mv # 文件改名
git rm # 删除文件
git rm --cached # 停止跟踪文件但不删除
git commit -m “commit message” # 提交所有更新过的文件
git commit --amend # 修改最后一次提交
33.查看历史
git log # 查看提交历史
git log -p # 查看指定文件的提交历史
git blame # 以列表方式查看指定文件的提交历史
34.撤销
git reset --hard HEAD # 撤消工作目录中所有未提交文件的修改内容
git reset --hard # 撤销到某个特定版本
git checkout HEAD # 撤消指定的未提交文件的修改内容
git checkout -- # 同上一个命令
git revert # 撤消指定的提交分支与标签
35.分支与标签
git branch # 显示所有本地分支
git checkout # 切换到指定分支或标签
git branch # 创建新分支
git branch -d # 删除本地分支
git tag # 列出所有本地标签
git tag # 基于最新提交创建标签
git tag -a "v1.0" -m "一些说明" # -a指定标签名称,-m指定标签说明
git tag -d # 删除标签
git checkout dev # 合并特定的commit到dev分支上
git cherry-pick 62ecb3
36.合并与衍合
git merge # 合并指定分支到当前分支
git merge --abort # 取消当前合并,重建合并前状态
git merge dev -Xtheirs # 以合并dev分支到当前分支,有冲突则以dev分支为准
git rebase # 衍合指定分支到当前分支
37.远程操作
git remote -v # 查看远程版本库信息
git remote show # 查看指定远程版本库信息
git remote add # 添加远程版本库
git remote remove # 删除指定的远程版本库
git fetch # 从远程库获取代码
git pull # 下载代码及快速合并
git push # 上传代码及快速合并
38.打包
git archive --format=zip --output ../file.zip master # 将master分支打包成file.zip文件,保存在上一级目录
git archive --format=zip --output ../v1.2.zip v1.2 # 打包v1.2标签的文件,保存在上一级目录v1.2.zip文件中
git archive --format=zip v1.2 > ../v1.2.zip # 作用同上一条命令
39.远程与本地合并git init # 初始化本地代码仓
git add . # 添加本地代码
git commit -m "add local source" # 提交本地代码
git pull origin master # 下载远程代码
git merge master # 合并master分支
git push -u origin master # 上传代码
今天的讲解就到此结束啦~
欢迎关注微信公众号 糖糖在coding
知乎账号
zhihu.com/people/sugar_01
git配置及常见命令相关推荐
- Git 配置别名 —— 让命令变得更简单
Git 配置别名 -- 让命令变得更简单 卖一下广告,欢迎大家关注我的微信公众号,扫一扫下方二维码或搜索微信号 stormjun,即可关注. 目前专注于 Android 开发,主要分享 Android ...
- git 配置组合指令_Git命令行基本操作
原标题:Git命令行基本操作 先来看看图的介绍吧 0. 安装Git 网上有很多Git安装教程,如果需要图形界面,windows下建议使用TortoiseGit,linux建议使用Git GUI或者GI ...
- git 笔记(常见命令、常见问题)
git上传步骤 第一步:右击将要上传的文件夹,在右键菜单栏里选择Git Bash Here选项 第二步:在弹出的Git命令窗口中输入git init (此时生成 .git文件) 第三步:复制gi ...
- gitee仓库创建和git一些常见命令
目录 一.gitee仓库创建 1.1 注册一个gitee账号 1.2 创建一个仓库 1.3 完善仓库 二.git的一些常见命令 2.1 git介绍 2.2 git 命令 一.gitee仓库创建 1. ...
- 什么是GIT,以及git的常见命令
文章目录 GIT 什么是版本控制 常见的版本控制工具 版本控制分类 Git与SVN的主要区别 软件下载 启动Git 常用的Linux命令 Git配置 设置用户名与邮箱(用户标识,必要) 三个区域 工作 ...
- git status清空_Git常见命令和遇到问题的解决办法
一.Git整体理解 Git代码管理是分布式管理方式系统,优点在于其极高的安全性和非常强大的分支管理. image.png 工作区(working directory): 就是本地的代码区,电脑能看到的 ...
- git推送指令配置_git 常用命令
git 简介 在实际开发中,会使用git作为版本控制工具来完成团队协作.因此,对基本的git操作指令进行总结是十分有必要的,本文对一些术语或者理论基础,不重新码字,可以参考廖雪峰老师的博文,本文只对命 ...
- 计算机网络实验:路由器交换机与其基本配置操作、常见命令
文章目录 路由器和交换机 路由器工作示意图 路由表的更新与维护 交换机 路由器交换机基本配置操作(console口) 超级终端软件的使用 用户视图 系统视图 网络设备接口的编号 快速清空网络设备配置的 ...
- 【git 常用配置及常用命令】
git 常用命令配置 git 常用配置及命令 1.1 git 邮箱配置 1.1.1 git alise 别名配置 1.1.2 git vim 编辑器配置 1.1.3 在本地创建远程分支并切换 1.1. ...
最新文章
- 我的世界服务器伤害增加bug,我的世界服务器BUG解决办法大全
- Java实现文件的RSA和DES加密算法
- 转贴 CxImage类库使用说明
- nodejs在服务器上运行
- 67 cookie常用方法
- 那些辞职考公的程序员,最后都怎么样了?
- go语言 select
- Eclipse运行tomcat失败
- 项目管理过程标准及绩效考核
- golang幽灵蛛(pholcus)(一)
- oracle创建交叉表,SQL交叉表常用实例(转载网络)
- 史上最全的工业相机CCD/CMOS靶面尺寸规格说明
- 都说谷歌浏览器翻译插件好用,这些必不可少
- zookeeper中zoo.cfg配置文件参数解释,常用命令整理
- WORD中怎样替换文字格式?
- 解决idea运行Tomcat项目时网页自动打开test1_Web_exploded文件并且打开其他链接时报错404的问题
- uni-app + uview 头像更换与头像预览
- 浮标水质监测站是什么
- ConcurrentModificationException 并发修改异常剖析及解决方案
- python爬虫小说下载到txt文档_python 爬取网络小说 清洗 并下载至txt文件
热门文章
- openstack 网络详解(Essex版)
- Javascript常用的一些数据结构与算法
- 新款HTTP代理抓包工具Proxyman(界面美观、功能强大)
- 赫兹 (单位) Hz
- unity mega_[MEGA DEAL] Unity A至Z游戏开发套件(96%折扣)
- 开源免费,捷微H5活动平台(微砍价、九宫格、斧头帮、摇一摇送卡券) h5huodong.com...
- 快手Y-tech:GAN在短视频中的AI特效实践
- 【项目总结】雪球爬虫完结(附Snowball模块代码)
- python卡尔曼多维_kalman filter using python
- python做面板数据_用Python做数据分析的基本步骤(持续修改更新)