什么是git ,git是一个分布式版本控制工具 ,而svn 是 集中式
给当前的git仓库配置用户名和邮箱
-
配置用户名 git config user.name "cgm"
-
配置邮箱 git config user.email "cgm@163.com"
-
给git配置全局用户名 git config --global user.name "cgm"
-
给git配置全局邮箱 git config --global user.email "cgm@163.com"
查看git 的配置。可以在 选择,前往 -> 个人- > 个人下面的 .gitconfig 隐藏文件进行查看
工作原理
-
工作区 :仓库文件夹除了.git 以外的内容
-
版本库: .git 目录。存取版本信息
- 暂缓去(stage)
- 分支(master): git 自动创建第一个分支
- HEAD指针: 用于指向当前的分支
-
git add 和 git commit 原理
git add :把修改的文件或者添加的内容添加到暂缓区
git commit :把暂缓区的内容提交到 HEAD指针指向分支
- 加载到暂缓区 git add main.m ,查看状态,发现是绿色,绿色代表,在暂缓区但没有提交到本地仓库
那么如何移除到暂缓区呢 git rm --cached main.m ,把main.m 移除暂缓区 - git commit -m "把暂缓区提交到本地仓库"
- 修改main.m 后。查看状态,会提示 Changes not staged for commit: ,修改了。但是没有提交到暂缓区
- commit 提交到暂缓区 会提示 1 file changed, 1 insertion(+)
一个文件,被修改。 1 条插入
初始化项目
选择了指定目录 gitTest。 在控制台 git init 创建,在此目录下,我们创建一个 .m 文件。touch main.m ,然后我们查看状态 git status 和查看目录
没有加载到缓冲区,和 目录结构
image.png给命令行起别名,比如给git status 起别名
- git config alias.st "status" 下次查看直接 git st 即可
-
git config --global alias.st "status" 给全局起别名。在.gitconfig可查看
image.png
删除文件
git rm main.m 将main.m 删除
查看版本号
-
git log 版本号sha1 算法生成的 40 位的哈希值
image.png -
git reflog 可以查看所有版本回退的操作
image.png
版本回退 。
- git reset --hard HEAD 回到当前的版本
- git reset --hard HEAD^ 回到上一个版本
- git reset --hard HEAD^^ 回到上上个版本
- git reset --hard HEAD~10 回到前10个版本
- git reset --hard 版本号 (想回到某个版本)
回滚版本注意
- git reset --hard HEAD^ 回到上一个版本
- git push -f 强制推送 ,上传到共享版本库
- git reset --hard HEAD^ 同事也要,回到上一个版本。一起合作才能回滚到上个版本
也可以给log起别名。百度收一下写法
创建共享版本库
-
在指定的目录或者文件下面。控制台 输入 git init --bare
image.png -
git clone 共享版本的地址 clone /Users/cgm/Desktop/test/share
-
添加忽略文件 ,在我们clone 的文件目录下面 touch.gitignore
忽略文件https://github.com/github/gitignore 可再次找到 -
可以模拟多个角色,clone 我们初始化的项目
-
image.png
多个角色开发的时候,push出现这个错误,就是不是最新的版本,有其他人提交过,我们需要pull 更新一下
- 如果pull,2边有冲突 image.png
备份 和 tag
- 打tag
- git tag -a product1.0 -m "这是1.0版本"
- git tag 查看
- push 到共享版本库
git push origin product - 其他开发人员想看tag 的时候 git pull 然后 git tag 查看
创建分支和查看分支
git checkout -b test1.0 //创建分支并切换到该分支
git branch 查看分支
git branch -r 查看分支
git checkout master 切换分支
git push origin test1.0 提交到共享版本库分支
删除本地分支
git branch -d test1.0 删除本地分支
git branch -r -d origin/test1.0 删除本地分支
git push origin --delete test1.0 删除共享仓库分支
GitHub 验证方式
-
账号匹配
image.png
2,SSHkeys认证
- 公钥:存在GitHub 解密
- 秘钥:存在本地的一个.ssh文件夹用来加密
如何配置公钥秘钥,github 也有介绍
- ls -al ~/.ssh 查看本地是否有.ssh
- ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
生成 .ssh -
点击前往-> 个人-> 个人文件下面有个.ssh 隐藏文件
image.png
/Users/chenguimin/.ssh
zwcMacBook-Pro:.ssh chenguimin$ ls
id_rsa(私钥) id_rsa.pub(公钥) known_hosts
zwcMacBook-Pro:.ssh chenguimin$ ssh-add id_rsa //添加私钥
Enter passphrase for id_rsa: //输入密码即创建ssh时候输入的秘钥
Bad passphrase, try again for id_rsa:
Bad passphrase, try again for id_rsa:
Bad passphrase, try again for id_rsa:
Identity added: id_rsa (id_rsa)
-
image.png
文本打开 id_rsa.pub 复制里面的内容
-
在github 设置
Snip20180401_19.png
添加即可设置,公钥
网友评论