mac下git安装和使用

1、下载git客户端,下载地址为:https://git-scm.com/download/mac,如下图,点击 installer ,跳转到https://sourceforge.net/projects/git-osx-installer/

 

2、打开安装包,可以看到此时的界面为:
 
我们需要把.pkg的安装包安装到系统当中。我双击了安装包之后,结果无法安装成功。界面为:
这里是一个坑,虽然是很简单的问题的,但是对于新手而言有时候还是头疼的。后来,在网上终于找到原因,由于这个需要权限,所以直接点击安装是无法成功的。方式是按住control键之后,再点击pkg文件。这个时候会弹出安装程序的界面。如
所示。然后选择打开,就可以完成安装了。
 

安装好Git后,配置用户名和用户邮箱,以后每次与Git的交互都会使用该信息。

git config --global user.name "your_name"  
git config --global user.email "your_email@gmail.com"
查看Git的配置信息指令
git config --list
3)创建ssh
生成SSH key,输入密码

$ ssh-keygen -t rsa -C jonezhang86@gmail.com(注册的main邮箱)

Generating public/private rsa key pair.

Enter file in which to save the key (/Users/jiangbo/.ssh/id_rsa):

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in yes.

Your public key has been saved in id_rsa.pub.

The key fingerprint is:

fb:c4:b0:e0:47:fd:be:e0:fb:ea:73:ef:a8:29:d5:22 jonezhang86@gmail.com

The key's randomart image is:

+--[ RSA 2048]----+

|                 |

|                 |

|                 |

|         .       |

|      . S ..     |

|     . oE=o..    |

|      . +o+..    |

|       ..+.+..   |

|         oOB=+o  |

+-----------------+

显示隐藏的文件
 shift+cmmand+. 
  • 输入cd指令,进入当前用户目录
  • 输入ls -a指令,查看当前用户目录下所有文件,包括隐藏文件
  • 输入cd .ssh指令,进入.ssh目录
  • 输入ls指令,查看.ssh目录下的文件
  • 输入cat id_rsa.pub指令,查看id_rsa.pub文件中内容

4)将SSH key添加到coding上

a、打开终端,输入open ~/.ssh,查看id_rsa.pub这个文件并打开拷贝key值

b、打开coding官网,登录成功后,点击账户-SSH公钥,输入a步拷贝的值,点击提交

https://github.com/settings/ssh/new

远端仓库添加密钥

以GitHub为例子,向远端仓库添加公钥,上面已经获取到了公钥,只需要将公钥添加到远端仓库就可以了。


图-1 添加公钥

在个人设置页面,左边选中SSH and GPG keys,在右边添加公钥,title是key的名称,可以随便取,可更改,key是上面我们获取到的公钥,填写完毕后点击add SSH key按钮,这样远端就添加到了密钥。

本地关联远端仓库

  • 在本地文件夹下面执行git init指令,初始化文件夹,作为本地的一个仓库。
  • 执行git remote add origin 仓库的ssh链接
  • 执行git pull指令,将远端代码拉取到本地

执行完毕后,远端仓库代码已经同步到了本地。

常用Git指令

    • 初始化配置

      git config --global user.name “XXX"
      git config --global user.email “XXXX"
    • 设置大小写敏感

      git config core.ignorecase false
    • 生成密钥

      ssh-keygen -t rsa -C “your_email”
    • 将远端代码clone到本地目录

      git clone <远端git> <本地目录>
    • 提交修改

      git add <文件> // 将有修改的文件添加到本地缓存中 git add . 是添加所有修改
      git commit -m "本次修改信息" // 提交本次修改,一般是在git add之后操作
      git reset . // 撤销add
      git rm --cached . // 撤销add

切换分支

git checkout <branch_name>
  • 以当前分支为蓝本新建分支并切换到新分支

    git checkout -b <branch_name>
  • 当前分支合并其他分支

    git merge <branch_name>
  • 远端新建分支,其实就是将本地分支推送至远端

    git push origin <local_branch_name>:<remote_branch_name>
  • 删除远端分支,其实就是推送了一个空的分支到远端覆盖了原来的远端分支

    git push origin :<remote_branch_name>
  • 从远端拉取分支,并建立对应关系

    git checkout -b <local_branch_name> origin/<remote_branch_name>
    // 或者
    git branch —track <local_branch_name> origin/<remote_branch_name>
  • 本地已经存在的分支和远端分支建立对应关系

    git branch —set-upstream <local_branch_name> origin/<remote_branch_name>
  • 添加远端库

    git remote add <远端库代称> <远端库地址>
    git clone <远端库地址> <目录>   //不需要git init
  • 回滚到某一个提交版本

    git reset --hard/soft <commit_id> // 回滚到某一个版本
    git reset --hard/soft HEAD~<num> // 回滚num个提交
    git revert <merge_commit_id> -m number // 撤销某一次merge
  • 强制远端覆盖本地

    git fetch --all
    git reset --hard origin/<remote_branch_name>
  • 提交日志查看方式

    git log -p 每一次提交具体差异
    git log —stat 显示文件修改差异,没显示具体修改
    git log —graph 树形状提交记录,可查看分支合并信息
  • git pull —rebase有冲突后,解决冲突,使用 git add .然后使用git rebase --continue

  • 切换到某个分支,将其他分支的某次提交应用到该分支

    git checkout <branch_name>
    git cherry-pick <commit id>
  • 前者表示把到之间(左开右闭,不包含start-commit-id)的提交cherry-pick到当前分支;后者表示把到之间(闭区间,包含start-commit-id)的提交cherry-pick到当前分支。

    git cherry-pick <start-commit-id>..<end-commit-id>
    git cherry-pick <start-commit-id>^..<end-commit-id>
  • tag

    • 新建tag

      git tag <tag_name> //轻量标签
      git tag -a <tag_name> -m "tag_msg" // 附注标签
      git tag -a <tag_name> <commint_id> // 给某次提交添加标签
    • 删除tag

      git tag -d <tag_name>
    • 查看tag

      git tag // 查看所有tag
      git show <tag_name> // 查看某条tag
    • 提交到远端

      git push origin <tag_name> // 将某个tag提交到远端
      git push origin –tags // 将所有tag提交到远端
    • branch相关指令
  • git branch -d <branch_name> // 删除某个分支
    git branch -D <branch_name> // 强制删除某个分支
    git branch -avv // 查看本地分支与远端分支关系,并且显示分支最新一次提交信息
    git remote show origin // 查看远端分支间关系

 

5)建立本地仓库并初始化

1、命令行打开本次仓库的文件夹目录或者直接创建

cd !/(目录)

2、仓库初始化

git init

3、将项目克隆到本地仓库

git clone URL(项目的SSH地址)

4、更新远程更新到本地:

先打开本地仓库的目录,要是程序文件夹的目录

然后输入更新代码命令,如下所示:

git pull 

5、提交代码

git add .
git commit -m “描述”
git push origin master
 

常见问题记录FAQ

1.git pull代码的时候报如下错:

error: Your local changes to the following files would be overwritten by merge:

Please, commit your changes or stash them before you can merge.

这表示更新下来的内容和本地修改的内容有冲突,先提交你的改变或者先将本地修改暂时存储起来

解决方法:先将本地内容存储起来,运行命令:git stach

再git pull 即可

 

2、git pull的时候报如下错:

fatal: No remote repository specified. Please, specify either a URL or a

remote name from which new revisions should be fetched.

问题:打开的路径不对

解决方法:打开本次仓库的正确路径,在更新代码

 

结束语

本篇粗略的介绍了Git的使用,但是对于Git内部的实现和一些具体的使用方法,还是需要自己去深入的了解。关于Git的详细介绍和工作原理,可以查看以下连篇文章。

Git教程,里面有介绍到Git的工作原理,可以仔细阅读。

Git Community Book 中文版介绍了Git具体使用,这本书也是关于Git的一本好书。

Git练习,实战练习Git的各种指令。

 
posted @ 2018-05-18 10:35  #甜甜8023  阅读(4418)  评论(0编辑  收藏  举报