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的各种指令。