本地库初始化
安装完git之后,在windows任意一目录,鼠标右键选择git bash,进入界面
里面的操作完全兼容linux命令,
1、新建一个文件 mkdir wechar
2、执行 git init,用ls -A 查看里面生成一个隐藏文件夹 (.git)
git目录里面存放的是本地库相关的子目录和文件,不要删除,不要胡乱的修改,如果里面文件乱掉,我们就不能用git进行版本控制了
设置签名
用户名
邮箱地址
作用:区分不同开发人员的身份
辨析:这里设置的签名和远程登录库的账号(代码托管中心)和密码没有任何关系
命令:
项目级别/仓库级别:仅在前本地库范围内有效
git config user.name xxx
git config user.email [email protected]
保存位置:./.git/config
系统级别:登录当前操作系统范围内有效
git config --global user.name xxx
git config --global user.email [email protected]
保存位置:~/.gitconfig
级别优先级 就近原则项目级别优先于系统级别,二者都有是才用项目级别的签名,如果只有系统用户级别就采用系统用户级别的签名为准,二者都没有不允许。
基本操作
状态查看操作
git status 查看工作区,暂存区的状态
添加操作
git add filename 将工作区"添加、修改"到暂存区
提交到本地库操作
git commit -m “提交信息” filename 将暂存区的内容提交到本地库
查看历史记录
git log
多屏显示控制方式:空格向下翻页,b向上翻页,q退出
git log --pretty=oneline
git log --oneline
git reflog
HEAD@{2} 表示回退到当前版本需要多少步
版本前进后退
git reset --hard 78a3cc6
将指针直到这个版本号 78a3cc6
git reset --hard HEAD^
只能后退,一个^符号表示后退一步
git reset --hard HEAD~3
只能后退,3表示后退3步
–soft --mix --hard 的区别
–soft 只移动本地仓库
–mix 移动本地库和暂存区
–hard 移动本地库、暂存区、工作区
删除文件并找回
前提:删除前,文件的状态提交到了本地库
操作: git reset --hard [指针位置]
删除操作已提交到了本地库:指针位置指向历史记录
删除操作还未提交到本读库(在暂存区):指针位置使用HEAD
比较文件
git diff filename
与比较暂存区
git diff 本地库中的历史版本 filename
将文件已指定版本进行比较
符号-表示删除的内容,+表示增加的内容
分支
什么是分支,在版本控制中使用多条线同时控制多个任务。
分支的好处?
同时并行推进多个功能的开发,提高开发效率
各个分支在开发过程中,如果某一分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。
分支操作
创建分支
git branch hot_fix
查看分支
git branch -v
切换分支
git checkout hot_fix
合并分支
1、切换到接受修改的分支(被合并,增加新内容)上
git checkout [被合并的分支]
2、执行merge命令
git merge [有新内容的分支名]
合并分支冲突的解决
a、手动修改冲突文件
b、执行 git add filename
c、执行 git commit -m “resolve confilict”
注意:解决冲突提交不能带文件名
在本地创建远程库地址别名并推送到远程库
git remote -v 查看远程库别名
创建远程库地址别名
git remote add origin https://github.com/17790551662/huashan.git
git push origin master 推送到远程库
克隆
git clone https://github.com/17790551662/huashan.git
完整的把远程库下载到本地
创建origin远程地址别名
初始化本地库
本地修改之后提交到本地仓库然后再提交到远程仓库
git push origin master
拉取操作
命令 : git pull origin master
拉取 pull = fetch + merge
抓取操作,不会修改本地文件
git fetch [远程库地址别名] [远程分支名]
git fetch origin master
查看抓取下来的内容需要切换到 git checkout origin/master
然后切换回master分支 git checkout master
再mege合并操作
git merge [远程库地址别名/远程分支名]
git merge origin/master
就可以看到修改的内容了
跨团队协作
当自己的任务不能完成时,寻找到第三方人员帮助解决问题
1、第三方人员登录git账号,复制并转到当前项目的git地址点击fork
2、第三方人员克隆到自己本地并修改之后提交到自己的远程仓库
3、第三方人员pull request s —> new pull request —> create pull request 发送消息
4、项目经理打开自己的远程仓库点击 pull requests ,再点击第三方人员发来的内容并审核代码,最后合并到仓库
ssh免密
打开 git bash 进入到 cd ~
运行 ssh-keygen -t rsa -C [注册github时的邮箱地址],一路空格
最后会生成 .ssh 文件夹 进入文件夹打开文件 id_rsa.pub复制里面的密钥
登录github点击头像 setting --> SSH and GPG keys --> New SSH Key -->
粘贴复制的密钥 —> 回到git bash 创建远程地址别名
执行命令 git remote add origin [项目的github的SSH地址]
git remote add origin [email protected]:17790551662/huashan.git
测试免密推送