安装
windows版本下载:http://git-scm.com/download/win
安装过程直接点击 next 直到完成安装。
linux版本下载:http://git-scm.com/download/linux
初次运行配置
打开git命令窗口,配置全局用户名和邮箱,如果使用了 --global
选项,那么该命令只需要运行一次
$ git config --global user.name "zhangsan"
$ git config --global user.email zhangsane@example.com
免密拉取代码配置
git config --global credential.helper store (后面再次输入一次密码后就不用再输入了)
创建ssh公钥密钥:ssh-keygen -t rsa -C "your@email.com"(一般采用rsa算法生成)
密钥文件在C:\Users\"用户名"\.ssh\ 目录下,id_rsa和id_rsa.pub,公钥pub可以放到远端仓库或者别人机器对应目录下,这样就可以有权限免密访问。
例如在github上添加本机的公钥,登录github之后在Settings点击左侧栏SSH and GPG keys看到SSH Key界面点击New SSH Key,粘贴本机上id_rsa.pub的内容,点击添加在输入一次github密码。验证是否成功,打开本机的git bash窗口输入ssh -T git@github.com
如果报错 ssh: Could not resolve hostname github.com: Name or service not known fatal.....
参考这两种解决办法:
https://blog.youkuaiyun.com/qq_34769162/article/details/117392568
关系图
常用命令
创建裸仓库:git init --bare (一般远程服务器创建,不存储代码信息,只有版本信息,黑客攻击不用担心代码泄露)
创建普通仓库:git init (本地仓库创建,存储代码等数据)
查看配置:git config -l
远程拉到本地仓库:git clone 用户名@ip:/path/to
远程拉到工作区:git pull
增加文件:git add 文件名 (提交到暂存区)
查看状态:git status
提交文件:git commit 文件名 -m "提交日志" (提交到本地仓库)
推到远端:git push origin master (提交到远端服务器)
查看提交日志:git log
创建分支:git branch 分支名
切换分支:git checkout 分支名 (参数加-b 表示如果不存在则创建该分支)
取消提交暂存区:git restore -S . (.表示当前目录所有,也可以指定文件名)
查看版本日志head:git reflog (查看哈希值前7位,head版本号)
从本地仓库回退:git reset head~版本号 (版本号可以再git reflog中查看,回退后git log中日志也没有了)(不加参数默认是--mixed,回退到工作区)
git reset head --mixed head~版本号 (代码回退到工作区,工作区修改的内容是没有add状态)
git reset head --soft head~版本号 (代码回退到暂存区,工作区修改的内容是add状态)
git reset head --hard head~版本号 (代码回退且不留痕迹,相当于没有提之前的代码,会丢失版本之后的数据)
合并分支代码到主流:git merge 分支名 (需要切到主流master再执行合并命令)
修改最近提交记录:git commit -amend (修改本地仓库最近的一次提交记录,如果有add状态文件,也会直接合入到最近的一次提交当中)
整理以前的提交记录:git rebase -i (修改或合并提交日志)
忽略提交的文件:vi .gitignore (添加要忽略的文件或者类型,如*.exe)