


安装好Git后,配置用户名和用户邮箱,以后每次与Git的交互都会使用该信息。
git config --global user.name "your_name"
git config --global user.email "your_email@gmail.com"
git config --list
$ 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 |
+-----------------+
- 输入
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、提交代码
常见问题记录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的各种指令。