使用git前的准备工作
- mac :不需要任何安装,自带git管理。
- linux:命令行下 git clone 一下会有提示,按照提示 sudo apt-get install git.
- windows:1访问 https://github.com/git-for-windows/git/releases/tag/v2.6.0.windows.1
32位机器选择Git-2.6.0-32-bit.exe 下载 64位选择Git-2.6.0-64-bit.exe
安装过程 全部 默认
安装成功后:开始 —> 所有程序 —> Git 中会有 Git Bash 和 Git Gui 两个图标
gui用于界面操作,git bash用于命令行操作,其命令跟 linux下用法一样。我们采用命令行的方式生成ssh的key。不要使用GUI里的生成ssh key的方式。
一:注册
1 去gitlab 地址注册(sign up)
-----------然后打开终端,windows是打开git Bash
二:配置git用户名 和 邮箱
(每次的提交记录中会添加用户名 和 邮箱信息)
1. git config --global user.name "wirelessqa"
2. git config --global user.email wirelessqa.me@gmail.com
三:ssh登录密钥生成并绑定。
3 本地生成 ssh 用的公钥 私钥。把公钥拷贝到gitlab页面中。过程如下
1》查看目前电脑上有没有 ssh用的公钥(id_rsa.pub)私钥(id_rsa),known_hosts。
ls -a ~/.ssh
如果有known_hosts 删除。 有id_rsa.pub,id_rsa 也删除。
2>生成:
ssh-keygen -t rsa -C "your_email@example.com"
一路按回车(3次)
3>拷贝公钥id_rsa.pub的内容:
mac电脑:打开finder commad+shift+G 快速前往 ~/.ssh,打开rsa.pub 用文本编辑应用。复制内容。
linux电脑: cat ~/.ssh/id_rsa.pub 复制内容。
window电脑的bash: 同linux电脑
4》把公钥配置到网站的个人设置里
登陆gitlab ,点击右上角设置(profile settings),左侧菜单出现 ssh Keys,单击,点 addSSH Key ,把复制的公钥 粘贴在Key里,Title会自动根据key生成。完成添加
-----------------
三:gitlab 创建项目组 仓库 总体描述
创建项目组:group 创建代码仓库:Project 有两种 一种属于项目组group,一种属于个人。 初始化代码仓库:根据提示
使用:git clone/直接download(看不到或者clone失败,是权限不够联系拥有者) 其他操作等同于github。
团队成员 master owner 才拥有写权限 (push权限)) ----------------------------------------
四 创建远程仓库 请参照网站内提示
创建者,新建project。按照网页提示操作。 使用者 简单的集中式团队合作 ,每个成员大都需要具有写权限(设置为master)
五使用者
使用者 简单的集中式团队合作的流程
your project:左侧你的所有工程的记录 (push,合并,comment讨论,team事件)。右侧是所有的工程。
starred project:主导的工程
groups: 你所在的项目组
milestones:里程碑
issues:问题
Merge Request:要求合并代码的请求
》git clone git@10.52.1.122:dooya/git-help.git //克隆一个仓库
》git status 查看文件状态 //
》git add 添加文件到“暂存区” //
》git commit 文件名称 添加文件到”本地仓库“ //
》git push origin master 推送到远程仓库
》git pull 从仓库拉取
》git log 查看仓库的所有提交记录
》git checkout “文件名” 从仓库检出文件,相当于恢复文件,抛弃当前的所有修改
git add . 添加当前所有的变化
- git 不常用指令
- git reset [回退!!谨慎使用,尤其是--hard,因为操作不可逆]扩展参考
git reset HEAD^ 回退到某个版本,只保留源码
git reset HEAD^ a.py 回退a.py这个文件的版本到上一个版本
git reset --hard 回退到某个版本,什么都不保留(废弃已经提交的修改)
删除远程分支
git branch -r -d origin/branch-name
git push origin :branch-name
各平台可视化工具
一 mac使用者
Xcode 在source control 中有相应的菜单 。
commit 提交到本地仓库(相当于两步 添加到暂存区,提交到本地仓库)
push pull 注意要保证本地没有变化,有变化需要discard 或者 commit到暂存区。
history 查看提交历史 git log
discard (恢复到仓库版本,抛弃所有修改)
checkout 相当于cd到某路径下 git clone,与git checkout命令并无关系
mac端的图形化操作软件 gitup客户端较为好用。可以自行下载学习。 sourceTree 较为常用,可以使用
xcode常见问题:
- 1 xcode The working copy has uncommitted changes.在pull的时候弹出这个提示,但是Xcode并没有发现任何变化。
这个时候去命令行用git status查看变化。 大概率是忽略的某些文件有缓存的问题。
---如果是用户配置相关的文件 利用git rm —cached 来移除缓存,并确保ignore文件中 已经加入了对此文件的忽略。
---如果是.DS_Store 那就用git checkout 或者xcode的discard来消除变化。同时要在隐藏文件.gitignore中添加两行
.DS_Store
.DS_Store?
注意用户名为在网站的昵称 而非邮箱。如果可以选择用ssh登录的选择,那就用ssh,这个方式简单。
二 linux使用者
暂时没发现什么好的GUI 的git工具。可以参考:博客
二 window使用者
- 1 Git Gui的界面操作 可以学习 也可以只学习命令行的操作Git Bash。如果使用GUI方式 需要了解暂存区的概念。
- 2 除了git gui以外,还可以使用eclicp的 egit的插件。 这个插件的安装以及使用方式,后续补充。
- 3 sourceTree 较为常用,可以使用
三问题解决
一 提交Git时,提示错误:RPC failed; result=22, HTTP code = 411。Google一下,找到答案:上传的包过大,HTTP的头错误导致的。
解决办法:打开项目中隐藏的.git文件夹,找到config配置文件,在后添加如下配置:
[http]
postBuffer = 524288000
意思是上传的最大数据量为50MB。 问题解决。