原文链接:
Git 版本控制 1.Git的安装 和 基本配置 1.1 安装Linux安装
二进制包(在线)
yum -y install git //RedHat系列
apt-get git install //Debian系列
源码包(官网下载)
Windows安装
Git在Windows使用模拟环境msysgit
下载地址:
https://git-for-windows.github.io/
注意:如果想让windows作为git服务器则需要搭建ssh服务。
----
无论Linux还是Windows,安装完成后都要初始化
git config [--global] user.name "Your Name" git config [--global] user.email "your@email.com" 中括号内的参数: --local 本地 --system 系统 --global 全局 无参,则为当前库配置身份 2. Git常用操作 2.1. 生成新的版本库新建空目录
进入该目录---单击右键---选择Git Bash Here
弹出git的命令行工具
初始化该目录为版本仓库,键入 git init
显示 Initialized empty Git repository in xxxxxx
ls -a 查看该目录下出现.git的隐藏目录,即版本库
初始化完成
2.2.添加文件到版本库新建文件 1.txt
查看当前版本状态
git status #查看当前版本状态红字提示有文件未跟踪(未加入版本控制)
在工具内输入以下,添加文件至版本库:
git add 1.txt # 添加文件至缓存区 git commit -m "描述" # 提交文件至版本库 git add newfile1 newfile2 ... # 多文件添加 git commit -m "描述" # 将缓存区的多次添加一次提交 ps: git add . # 添加所有改动过的文件到缓存区 git add --all # 添加所有文件到缓存区执行完后,提示提交完成.
git status 提示
nothing to commit, working directory clean
至此最简单的添加文件到版本库已完成
2.3.查看文件修改状态相关 git status # 查看当前版本状态(是否修改)修改文件测试以下 :
git diff # 工作区 与 缓存区的区别 git diff --cached # 缓存区 与 版本库的区别 git diff HEAD # 工作区 与 版本库的区别Git日志,分析日志构成 :
git log # 查看提交历史 git log --oneline # 以简短的方式查看提交日志 2.4. 版本回退 git reset --hard HEAD # 将当前版本重置为HEAD(通常用于清空缓存区,或merge失败回退) git reset --hard HEAD^ # 回退上一个版本 git reset --hard HEAD^^ # 回退上两个版本 git reset --hard HEAD~n # 回退上n个版本 git reset --hard <commitid> # 回退到指定版本,commitid根据log获取 2.5. 行为日志 git reflog # 行为日志,显示所有提交,回滚等.. git ls-files # 显示缓存区的所有文件 2.6. 撤销目的:将尚未提交至版本库的修改撤回。
情况一 : 文件修改后尚未添加至缓存区
git checkout --filename # 在工作区撤销文件的修改情况二 : 文件修改已添加至缓存区
git checkout HEAD [filename] # 撤回添加至缓存区的修改,不指定filename则撤回所有 2.7. 删除 git rm index.php # 删除index.php文件 git rm --cached index.php # 将index.php文件移出缓存区,但不删除( -r * 递归目录) git rm -f 1.html # 将缓存区中的1.html文件移出并删除 3. Git多人协作 3.1. 得到远程的版本库可以使用两种方式来得到远程版本库:
在某个指定的文件夹下使用,即可得到远端版本库及代码
git clone <远端版本库url> <本地存放该库的文件夹名>手动添加版本库,并拉取文件
git init #初始化本地仓库 git remote add <remote> <url> # 添加远程版本库 <remote>可自行取名,默认origin git remote -v # 查看远程版本库信息 git remote show <remote> # 查看指定远程版本库信息 git remote remove <remote> # 删除远程remote链接 git pull <remote> <branch> # 下载代码及快速合并 3.2. 推送分支代码得到远端版本库后,可以在本地按正常的步骤编辑 :
新建或改动文件-->添加至缓存区-->提交到版本库
此时,要想将本地版本库发给远端,只有commit提交是不够的.
还需要下面的操作 :
执行以上代码,会有报错 : 无法直接推送到远端的主分支
此时,可以曲线救国,推送自己的分支到远端即可 :
git push origin master:dev此时,推送成功!
4.Git分支管理 4.1. 查看版本库分支 git branch # 显示本地分支 git branch -a # 显示所有分支 git checkout 分支名/标签名 # 切换到指定分支或标签 4.2. 创建分支/删除分支 git branch 分支名 # 新建分支 git checkout -b dev # 创建并切换到dev分支 git branch -d 分支名 # 删除本地分支 -D 强制删除 4.3. 合并分支要将B分支合并到A分支里
请切换到A分支内,合并B分支的操作在A分支内进行
多分支修改同一文件,合并可能出现冲突。冲突部分用<<<===>>>表示
解决方法:
先手动修改冲突部分,再次提交即可。
市面上有名的Git托管系统 :
GitHub https://github.com/
开源中国 https://git.oschina.net/
5.1. 开源中国 生成SSH密钥