分布式版本控制系统
本地管理
下载安装后首次在本地设置全局用户名和邮箱,建议与github保持同步
设置指令:
git config --global user.name "USERNAME"
git config --global user.email "USER@EMAIL.COM"
查看当前用户配置指令
git config --global user.name
git config --global user.email
让Git管理当前文件夹(仓库):进入当前文件路径,使用指令
git init
此时生成了一个隐藏的.git文件夹,用于管理当前仓库进行版本控制等操作
查看当前状态,在工作区:
git status
将文件从工作区添加到缓存区
git add FILENAME
git add FILE1 FILE2...
git add . //添加所有
缓存区提交到本地仓库
git commit -m "comments"
查看版本
git log //进入版本文档,q退回
git log --pretty=oneline //简略显示
回退操作
git reset --hard 提交编号
得到之前做过的最新版本号,然后执行git reset上面指令,回到未来
git reflog
远程管理
克隆远程仓库到本地,在需要的路径下
git clone HTTPS网址.git // 基于HTTP协议
提交到远程仓库
git push
注意:
报错403:权限错误。不是所有人都可以对线上仓库进行提交的,需要授权
授权操作:编辑配置文件将用户名和密码添加到[remote “origin”]下面的https网站前面,保存退出
vim ./config.git
url = https://username:password@github.com/username/reponame.git
vim文件的编辑
i //进入insert模式
ESC //退出编辑格式
:wq //保存编辑并退出
从远程仓库拉取最新到本地
git pull
在克隆远程仓库到本地时除了可以使用HTTPS协议,还可以使用SSH协议,如果使用后者,在github上需要创建一个公钥。HTTPS用用户名和密码身份授权,SSH用公私钥对文件进行授权。
生成公私钥对文件:
ssh-keygen -t rsa -C "注册邮箱" //提前自行安装OpenSSH
执行指令之后连续回车即可,文件目录和密码均可以default
然后将公钥id_rsa_pub添加到远程仓库中,保存
此后执行的操作与HTTPS协议相同,注意复制的是ssh地址
分支管理
多模块同时开发的时候会有多分支。单一分支的分支名是master branch
分支相关命令
git branch //查看分支
git branch branch-name //创建分支
git checkout branch-name //切换分支
git checkout -b branch-name //创建并切换分支
git branch -d branch-name //删除分支,先退出当前需要被删除的分支
git merge 被合并的分支名 //合并分支
冲突与解决
先git pull,提示git将冲突合并
然后查看冲突内容,选择保留的东西,删除标记
重新add, commit, push即可
忽略文件
有一些不需要提交到远程仓库的文档,可以用忽略文件来解决
忽略文件需要新建一个名为.gitignore的文件,用于声明忽略文件或不忽略文件的规则,规则对当前目录及子目录有效。
过滤规则:
- /dir-name/ 过滤整个文件夹
- *.zip 过滤所有.zip文件
- /dir-name/file.txt 过滤某个具体文件
- lindex.php 不过滤具体某个文件
以后版本控制可以用Idea带的Git插件实现,比较方便。不过此时注意./config.git中的内容URL要改回来,插件有自己的验证UI,不改会找不到网址