Git基本使用
介绍
使用GIt进行项目版本管理,并且可以结合使用GitHub的托管服务(免费,公开)
ssh
本地可以生成多个ssh。一个ssh可以和一个remote repository绑定。在进行remote绑定远程分支时,如果.ssh中的key在remote配置过了可以免密登录。
生成ssh时,默认是id_rsa,需要配置不同的名字才不会覆盖。
repository
仓库之间是独立的,都有专门的版本管理时间线。在建立新仓库时也需要进行单独的配置,否则使用global config。
master和branch的意义
需求:希望修改或开发的同时,系统还能稳定运行。方法:①vcs:git(代码科学管理);②copy一份代码(不可取,代码管理混乱)
master上的版本一般是稳定版本,可以使用的版本。当我们需要开发新功能的时候,不希望对原版本产生影响保证master版本可以稳定使用,可以通过创建一个分支在新分支上进行开发。因为:在哪个分支上,执行的就是哪个分支上的代码。所以,在进行自动化测试项目中,master上为可以执行的稳定测试脚本。开发新模块的脚本时,可以在分支上进行修改,然后分支上执行没有问题后merge。
总结:分支上执行进行脚本调试,master上执行进行自动化测试。
命令
git config
配置github邮箱和密码
- 全局config
- 查看:git config --global --list
- 修改:git config --global user.name 'mr.zheng'
- 删除:git config --global --unset user.name
- local config:cd repository_directory
- 查看:git config --local--list
- 修改:git config --local user.name 'mr.zheng'
- 删除:git config --local --unset user.name
创建仓库
- git init:运行 git init 将一个目录转变成 Git 仓库,并对它进行版本管理。
- git clone:clone封装了几个命令。初始化一个空的 Git 仓库,并添加一个远程仓库,然后将clone的远程仓库执行
git fetch
工作区和暂存区
- git add:将工作区的文件添加到暂存区,以备下次提交。
- git status:显示版本管理中,有变更的文件
- git diff:查看不同
暂存区和版本库
- git commit:将所有通过
git add
暂存的文件内容添加到版本库中,并指向新版本 - git rm:将
git add
的文件移除暂存区
版本切换
- git reset:通过
commit id
切换到指定版本 - git branch:查看所有分支
- git checkout:切换分支
- git log:项目可达历史记录,commit记录,可以获取commit id,gong
git reset --hard <commit id>
进行版本切换
local and remote
- git pull:拉取远程代码到本地并尝试合并
- git push:推送到远程仓库,需要有远程仓库写的权限,通常需要配置ssh进行验证
- git remote:远程仓库记录的管理工具,将一个长的URL保存成一个简单的句柄,可以通过
git remote
进行添加,修改,删除;如:git push origin,而不是 git push https://git.xxxx
编辑器Git插件
pycharm编辑器的git插件
常用操作
-
file/setting/vcs/github:remote账号 或者 使用ssh验证。test进行连接test
-
vcs/clone:url 和 local repository directory
-
init给项目配置git vcs:在project directory/vcs/import into vc/create git repository
-
vc/local change:git status。
-
vc/log:git log,显示hard,local branch,remote branch
-
local git:local change(所有change过的,无论是否add),commit(commit前可以再次确认需要提交的),revert(从change到原始版本)
-
颜色标记文件状态:目录中的文件状态显示:红色(没有进行版本管理的文件),绿色(使用git管理),黑色(未修改),蓝色(change过的);灰色(git忽略的文件)
-
commit:commit页面可以再次确认需要commit的文件。①commit到local;②commit到local + push到remote。
-
local branchs 和 remote branchs。对应关系。
-
log:显示记录和时间线,可以快速切换版本。
-
gitignore 设置不用管理的文件和目录。
-
push和pull和clone操作。