官方文档:https://git-scm.com/book/zh/
安装
- linux:yum install -y git
- Windows:https://git-scm.com/downloads
- Mac:brew install git
拥有一个git账号
客户端配置
- 配置sshkey in windows(不用每次都输入密码)
- 进入本地的git命令操作框
- 首先查看是否存在id_rsa.pub或id_dsa.pub文件:cd ~/.ssh。如果已经存在则直接执行复制命令然后去粘贴
- 生成key:ssh-keygen -t rsa -C "邮箱地址",一直回车,使用默认的名称
- 复制生成的id_rsa.pub的公钥内容到github网站中
- 直接命令复制:/c/Users/Administrator/.ssh/id_rsa.pub
- 登录github官网,从头像进入设置,进入SSH and GPG keys,进入new SSH key
- 把复制好的密钥粘贴进去。over
- 配置多个sshkey(公司的、自己的)
- cd ~/.ssh
- vim config,进入文件编辑
- Host github.com
- HostName github.com
- User 注册时的用户名
-
IdentityFile /c/Users/Administrator/.ssh/id_rsa(id_rsa的绝对路径)
示例
- 配置多个github账号的配置
- 再次配置和上面一样的配置即可,不过需要注意:
- Host和HostName添加公司的git的网址
- User和IdentityFile的值也要进行对应的更改(并且,id_rsa需要进行改名,不能都一样,对应的id_rsa.pub也需要改名,防止文件冲突。用mv命令)
- 再次配置和上面一样的配置即可,不过需要注意:
创建项目
- 登陆进github首页(左上角猫logo)
- Start a project
- 填写名称和备注,创建
-
验证方式:HTTPS:用户名和密码;SSH:之前配置的sshkey
示例
- 再次进入该项目(从your profile进入)
- 选择SSH,复制上面链接
- 回到本机,进入git bash
- 创建一个项目文件夹 mkdir
- 进入该项目文件夹中,执行git的克隆命令: git clone 复制的ssh路径
把本地内容推送到仓库上(先在项目文件夹创建个文件)
-
查看当前目录下的本地文件的状态:git status
-
使用添加命令:git add 红色文件名称(发生改动了的文件)
-
添加当前目录所有发生改动的文件:git add . (点)
-
使用删除命令:git rm 要删除的文件名称
-
使用提交命令: git commit -m “文件注释,中英兼容”
PS.上面两步可能会出现问题:
问题1
原因:这是因为git的回车和IOS一样,是LF;但是windows上的是CRLF
解决:可以在命令后面加空格再回车;或者执行下面提示的两条命令:解决1
-
使用推送命令,添加到github的仓库上:git push
-
进入github对应的项目的Code
示例
从github的仓库拉取文件
- 进入项目文件夹,命令:git pull
项目的分支操作
-
查看本地分支:git branch
-
查看远端分支:git branch -a
-
本地创建分支:git checkout -b 分支名称
-
提交分支: git push --set-upstream origin (分支名称)
-
删除分支
- 删除本地分支:git branch -d 分支名称
- 如果当前所处分支是所要删的分支,是无法进行删除的,需要切换到其它分支上
- 切换分支:git checkout 分支名称
- 删除远程分支:git branch -r -d 分支名称
- 删除推送到仓库:git push origin【空格】:分支名称(那个空格一定要敲)
- 此时才是真正删除了分支
-
合并分支:git merge 想要合并的分支 (把指定分支合并到当前分支)
- 合并分支的冲突问题:(多人同时对分支/文件进行操作会冲突)
-
两个分支在同个文件上进行不同的修改后,进行分支合并发生的情况:
示例
-
分支的一些场景:
- 上运行过程发现bug,就需要创建一个分支,把master分支的代码拉出来,修复bug,然后测试通过,再合并到主分支上。最后删除这个分支
- 协作开发的时候,会拉出一个分支,时间长了之后,很多没用分支
-
项目的版本操作
- 在进行了git push后,版本回退到上个版本:git reset --hard HEAD^
- 回退多个版本前
- ^的数量代表回退到上第N个版本s
- git reset --hard HEAD~5(X:回退到上第五个版本)
- 回退到指定版本:git reset --hard 版本ID号
-
查看日志(查看版本的ID号):git reflog
示例
网友评论