首先我们需要本地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配置及常见命令相关推荐

  1. Git 配置别名 —— 让命令变得更简单

    Git 配置别名 -- 让命令变得更简单 卖一下广告,欢迎大家关注我的微信公众号,扫一扫下方二维码或搜索微信号 stormjun,即可关注. 目前专注于 Android 开发,主要分享 Android ...

  2. git 配置组合指令_Git命令行基本操作

    原标题:Git命令行基本操作 先来看看图的介绍吧 0. 安装Git 网上有很多Git安装教程,如果需要图形界面,windows下建议使用TortoiseGit,linux建议使用Git GUI或者GI ...

  3. git 笔记(常见命令、常见问题)

    git上传步骤 第一步:右击将要上传的文件夹,在右键菜单栏里选择Git Bash Here选项 第二步:在弹出的Git命令窗口中输入git init    (此时生成 .git文件) 第三步:复制gi ...

  4. gitee仓库创建和git一些常见命令

     目录 一.gitee仓库创建 1.1 注册一个gitee账号 1.2 创建一个仓库 1.3 完善仓库 二.git的一些常见命令 2.1 git介绍 2.2 git 命令 一.gitee仓库创建 1. ...

  5. 什么是GIT,以及git的常见命令

    文章目录 GIT 什么是版本控制 常见的版本控制工具 版本控制分类 Git与SVN的主要区别 软件下载 启动Git 常用的Linux命令 Git配置 设置用户名与邮箱(用户标识,必要) 三个区域 工作 ...

  6. git status清空_Git常见命令和遇到问题的解决办法

    一.Git整体理解 Git代码管理是分布式管理方式系统,优点在于其极高的安全性和非常强大的分支管理. image.png 工作区(working directory): 就是本地的代码区,电脑能看到的 ...

  7. git推送指令配置_git 常用命令

    git 简介 在实际开发中,会使用git作为版本控制工具来完成团队协作.因此,对基本的git操作指令进行总结是十分有必要的,本文对一些术语或者理论基础,不重新码字,可以参考廖雪峰老师的博文,本文只对命 ...

  8. 计算机网络实验:路由器交换机与其基本配置操作、常见命令

    文章目录 路由器和交换机 路由器工作示意图 路由表的更新与维护 交换机 路由器交换机基本配置操作(console口) 超级终端软件的使用 用户视图 系统视图 网络设备接口的编号 快速清空网络设备配置的 ...

  9. 【git 常用配置及常用命令】

    git 常用命令配置 git 常用配置及命令 1.1 git 邮箱配置 1.1.1 git alise 别名配置 1.1.2 git vim 编辑器配置 1.1.3 在本地创建远程分支并切换 1.1. ...

最新文章

  1. 我的世界服务器伤害增加bug,我的世界服务器BUG解决办法大全
  2. Java实现文件的RSA和DES加密算法
  3. 转贴 CxImage类库使用说明
  4. nodejs在服务器上运行
  5. 67 cookie常用方法
  6. 那些辞职考公的程序员,最后都怎么样了?
  7. go语言 select
  8. Eclipse运行tomcat失败
  9. 项目管理过程标准及绩效考核
  10. golang幽灵蛛(pholcus)(一)
  11. oracle创建交叉表,SQL交叉表常用实例(转载网络)
  12. 史上最全的工业相机CCD/CMOS靶面尺寸规格说明
  13. 都说谷歌浏览器翻译插件好用,这些必不可少
  14. zookeeper中zoo.cfg配置文件参数解释,常用命令整理
  15. WORD中怎样替换文字格式?
  16. 解决idea运行Tomcat项目时网页自动打开test1_Web_exploded文件并且打开其他链接时报错404的问题
  17. uni-app + uview 头像更换与头像预览
  18. 浮标水质监测站是什么
  19. ConcurrentModificationException 并发修改异常剖析及解决方案
  20. python爬虫小说下载到txt文档_python 爬取网络小说 清洗 并下载至txt文件

热门文章

  1. openstack 网络详解(Essex版)
  2. Javascript常用的一些数据结构与算法
  3. 新款HTTP代理抓包工具Proxyman(界面美观、功能强大)
  4. 赫兹 (单位) Hz
  5. unity mega_[MEGA DEAL] Unity A至Z游戏开发套件(96%折扣)
  6. 开源免费,捷微H5活动平台(微砍价、九宫格、斧头帮、摇一摇送卡券) h5huodong.com...
  7. 快手Y-tech:GAN在短视频中的AI特效实践
  8. 【项目总结】雪球爬虫完结(附Snowball模块代码)
  9. python卡尔曼多维_kalman filter using python
  10. python做面板数据_用Python做数据分析的基本步骤(持续修改更新)