github对我而言就是一个学习资料管理仓库,在此记录下个人平时使用git所遇到的一些问题及使用到的一些命令。
一、安装git
http://msysgit.github.com/ 下载安装windows 64位版本(根据个人电脑)
二、设置git的用户名和邮箱(github网站的用户名和邮箱地址)
git config --global user.name "myname" 设置用户名
git config --global user.email "myemail" 设置邮箱
设置之后,可用git config --list 查看配置列表
三、配置SSH(本地库和github网站远程库建立连接上传更新文件的权限通过秘钥来确定,也就是确定推送数据是不是本人)
1.查看是否已经有了ssh密钥:cd ~/.ssh
如果没有密钥则不会有此文件夹,有则备份删除
2.生成密钥:$ ssh-keygen -t rsa -C "邮箱地址例如:[email protected]" 按3个回车,密码为空
C盘/user/用户名/.ssh隐藏文件夹里面有两个文件:id_rsa(私钥) 和 id_rsa.pub(公钥)
复制id_rsa.puh里面的内容,在已登录的github网站上 settings->ssh->粘贴进去生成。
四、github网站创建新的版本库,并建立本地库和远程库连接(通过clone或者 $ git remote add origin url) url为版本库的SSH地址或者HTTP地址 用SSH地址,推送更新数据不用验证用户名密码。
git remote -v 检测版本库建立
git init 初始化本地库
五、一些提交、更新的操作指令
git clone url 克隆github网站上项目
git config --global user.name "liuwei9413" 设置贡献者名称
git config --global user.email "[email protected]" 设置邮箱
git init 在某个文件夹内初始化git
git status 查看当前项目文件的状态
git add demo.html 提交文件到暂存区
git add . 提交所有文件到暂存区
git commit 暂存区->版本库
git commit -m "此处为注释"
git commit -a -m "注释" 直接从工作区提交到版本库
git log 操作日志 如果日志过多只显示部分 按enter键可继续查看 退出查看按q键
对比:
git diff 工作区--暂存区对比
git diff -- cached 暂存区--版本库对比
git diff master 工作区--版本库对比
撤销:
git reset HEAD demo.html 从暂存区撤回工作区
git checkout -- demo.js 工作区撤回到版本库状态(回退)
git commit -m "注释" --amend 暂存区多个文件只提交部分到版本库 回退上一次提交 并一次提交暂存区所有文件
删除:
git rm demo.js 删除暂存区文件(前提是工作区文件已经手动删除)
git rm -f demo.js 同时删除工作区和缓存区文件
git rm --cached demo.js 删除缓存区文件(保留工作区文件)
恢复
git checkout commit_id filename 恢复某个文件到指定版本
git reset --hard commit_id 恢复到指定版本
git reflog 查看所有版本id 用于返回最新版本
同步到远程仓库
git remote 查看远程仓库名(克隆时自带仓库名)
git remote -v 查看远程仓库名+对应仓库地址
git remote rm 远程仓库名 删除远程仓库
git push origin(仓库名) master(分支名) 同步到远程仓库
多人协作解决冲突(每次开发先同步更新代码)
git fetch (从远端同步手动合并) 先查看冲突,能查看到冲突细节
git diff master origin/master
git merge origin/master
git pull (从远端同步直接合并)
开源项目协作
1.fork到自己github版本库 下载到本地作修改
2.pull request 到项目管理人
分支处理
git branch 查看分支
-d new1 删除new1分支
--merged 查看当前分支的合并分支
--no-merged 查看分支未合并的分支
git branch new1 创建分支
git checkout new1 切换分支
git checkout -b new2 创建分支并切换到该分支
git merge new1(在master分支下) 快速合并分支master和new1
添加标签 tag
git tag v1.0 创建标签
git push origin v1.0 同步标签到远程仓库
操作过程种偶尔会遇到些奇怪的问题,不要着急,百度自然能解决。