Git下载
直接百度git官网,下载对应版本。
注:点击下载后会前往GitHub,如果GitHub进不去,可以百度如何在windows的hosts中配置。
版本控制工具应该具备的功能
- 协同修改
- 数据备份
- 版本控制 : SVN(集中式):增量式管理 GIT(分布式):文件系统快照
- 权限控制
- 历史记录
- 分支管理
Git和代码托管中心
局域网下
GitLab服务器
外网环境下
- GitHub
- 码云
本地库初始化
在对应文件夹中使用Git bash----->git init
注:.git目录中存放的是本地库相关的子目录和文件,不要删除和修改
设置签名
形式
用户名: tom
Email地址:XXXX@XXX
作用:区分不同开发人员的身份
辨析:这里设置的前面与登录远程库(代码托管中心)的账号,密码没有任何关系
项目级别/仓库级别:仅在当前本地库访问内有效
git config user.name tom_pro
git config user.email .....@....
存储文件所在路径:.git/config
系统用户级别:登录当前操作系统的用户
git config -global user.name tom_pro
git config -global user.email .....@....
存储文件所在路径:
cd ~
.gitconfig/config
级别优先级:
就近原则:项目级别高于系统用户级别,二者都有就以系统用户级别的前面为准,二者都没有,则不允许进行操作
Git 命令
- git status 查看状态
- git add 文件名 将文件放入暂存区
- git rm --cache 文件名 将文件从暂存区删除
- git commit 文件名 将文件放入本地库
- git commit -m “asdw” good.txt 此时不用进入vim编辑器
- git log 空格向下翻页, b 向上翻页 q 退出
- git log --pretty=oneline 显示格式调整
- git reflog 可以显示回退到相应版本的步数
- git branch -v 显示所有的分支
- git branch 分支名 创建分支
- git checkout 分支名 切换分支
- git merge 分支名 分支合并,注:想要切换到等待合并的分支上,如master合并hot_fix,先切换到master再git merge got_fix
- git remote -v 显示已保存的地址
- git remote add kj 地址 将地址保存到git中
- git remote rename
- git remote rm
- git clone 网址
- git clone 网址 本地目录名
- git fetch 远程主机名 将某个远程主机上的更新全部取回到本地
- git fetch 远程主机名 分支名
- git pull origin next:master 取回origin主机的next分支与本地的master分支合并
- git pull origin next 取回next分支与当前分支合并
- git push kj master 推送本地的master分支到kj
Git设计结构
Git前进回退版本
- 基于索引值
git reset --hard 索引值 版本回退到指定索引值处,索引值可通过git reflog 查看
- 使用^符号:只能回退
git reset --hard HEAD^^(往前回退两个版本)
- 使用~符号:只能回退
git reset --hard HEAD~3(回退三个版本)
注:删除某些代码后文件后,可以通过版本回退找回
reset 三个参数对比
- –soft:在本地库移动HEAD指针,但因为本地库中回退了,使得暂存区与本地库中的不一致,所以还是会显示绿字
- –mixed:在本地库移动HEAD,并且重置暂存区,因为此时工作区没有与暂存区和本地库一致,所以会显示红字
- –hard:本地库移动HEAD,重置暂存区和工作区
Git进行文件比较
- git diff [文件名]:将工作区中的文件和暂存区进行比较
- git diff HEAD^ [文件名]:将工作区中的文件和本地库上一个版本进行比较
- git diff:所有文件进行比较
分支冲突解决
1.将出现问题的文件修改
2.git add 对应文件名
3.git commit -m “XXX”