赞
踩
名称 | 类型 | 提交 | 服务器 | 描述 |
---|---|---|---|---|
Git | 分布式集中管理控制系统 | 无网络可本地提交,联网是push到相应服务器 | 无中央服务器 | 代码存在安全隐患,不会因为服务器网络问题或服务器损坏造成无法工作 |
SVN | 集中式版本控制系统 | 无网络不可以提交 | ,有中央服务器 | 从中央服务器得到最新版本,然后工作,完成工作后,需要把数据推送到中央服务器,服务器存在安全隐患,可能服务器数据丢失造成全部数据丢失,并且git可以看到用户更新了哪些代码和文件 |
1.Git 下载地址 (Linux/Unix, Mac, Windows 等相关平台)
注意: 以下所有命令都在 Git Bash 中运行,不是 cmd, 拷贝命令的时候不用复制前面的 $ 符号
git config -l 查看本地所有配置
git config --global --list 用户自己的配置
必须配置 git config --global user.name "名字" 配置所有 Git 仓库的
必须配置 git config --global user.email "真实邮箱"配置所有 Git 仓库的Email
所有的系统配置都保存在本地目录E:\Git\mingw64\etc目录下的gitconfig
用户的私人配置放在C:\Users\用户名目录下的.gitconfig文件,删掉就没了
### 配置当前 Git 仓库的 用户名 和 email
工作区域
Git本地有三个工作区域:工作目录(Working Directory)、暂存(Stage/Index)、资源库(Repository或Git Directory)。
如果在加 上远程的git仓库(Remote Directory)就可以分为四个工作区域。文件在这四个区域之间的转换关系如下:
·Workspace:工作区,就是你平时存放项目代码的地方
·Index/Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
·Repository:仓库区(或本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放
入仓库的版本
·Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换
git的工作流程一般是这样的:
1在工作目录中添加、修改文件; UserMapper.xml
2将需要进行版本管理的文件放入暂存区域; git add.
3将暂存区域的文件提交到git仓库。 git commit
4推送到远程服务器 git push
(所有命令都在 Git Bash 中运行)
git 查看 git 的相关命令 (git --help)
git --version 查看 git 的版本
git config 查看 git config 的相关命令
git pull origin develop 从远程(origin) 的 develop 分支拉取代码
1.建立仓库: 在 Git Bash 中输入对应的命令`
git init创建本地仓库
git clone url 克隆远程目录
mkdir 创建目录
pwd 用于显示当前目录
注意: 为避免遇到各种奇怪的问题,确保目录名 (包括父目录) 不含中文
2.文件的四种状态
①,Untracked:未跟踪,此文件在文件夹中,但并没有加入到git库,不参与版本控制,通过git add 状态变为Staged
②,Unmodify:文件已经入库,未修改,即版本库中的文件快照内容与文件夹中完全一致,这种类型的文件有两种去处,如果它被修
改,而变为Modified.如果使用git rm移出版本库,则成为Untracked文件
③,Modified:文件已修改,仅仅是修改,并没有进行其他的操作,这个文件也有两个去处,通过git add可进入暂存staged状态,使用
git checkout 则丢弃修改过,返回到nmodify 状态,这个git checkout即从库中取出文件,覆盖当前修改!
④,Staged:暂存状态执行git commit 则将修改同步到库中,这时库中的文件和本地文件又变为一致,文件为Unmodify状态执行git
reset HEAD flename 取消暂存,文件状态为Modified
3. 添加文件到仓库
git status 查看仓库目前状态 (项目是否有修改、添加、未追踪的文件等)
git add <file> 如: git add readme.txt
git commit -m "description" 如: git commit -m "add readme.txt"
①. add 添加该文件到仓库,
②. commit 提交该文件到仓库, description 为你对该次提交的描述说明,
注意: 可以多次 add 不同的文件,commit 可以一次提交多个文件
4.忽略文件
有些时候我们不想把某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件等在主目录下建立".gitignore"文件,此文件有如下规则:
①.忽略文件中的空行或以井号(#)开始的行将会被忽略。
②.可以使用Linux通配符。例如:星号(*)代表任意多个字符,问号(?)代表一个字符,方括号([abc])代表可选字符范围,大括
号({string1,string2....})代表可选的字符串等。
③.如果名称的最前面有一个感叹号(!),表示例外规则,将不被忽略。
④.如果名称的最前面是一个路径分隔符(/),表示要忽略的文件在此目录下,而子目录中的文件不忽略。
⑤.如果名称的最后面是一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)。
简单事例
*.txt #忽略所有.txt结尾的文件
!1ib.txt #但1ib.txt除外
/temp #仅忽略项目根目录下的TODO文件,不包括其它目录temp
build/ #忽略build/目录下的所有文件
doc/*.txt #会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
4. 查看修改内容,查看文件不同 (difference)
$ git diff
$ git diff <file>
$ git diff --cached
$ git diff HEAD -- <file>
# git diff 查看工作区(work dict)和暂存区(stage)的区别
# git diff --cached 查看暂存区(stage)和分支(master)的区别
# git diff HEAD -- <file> 查看工作区和版本库里面最新版本的区别
如: git diff readme.txt 表示查看 readme.txt 修改了什么,有什么不同
5. 查看提交日志
$ git log
$ git log --oneline #美化输出信息,每个记录显示为一行,显示 commit_id 前几位数
$ git log --pretty=oneline #美化输出信息,每个记录显示为一行,显示完整的 commit_id
$ git log --graph --pretty=format:'%h -%d %s (%cr)' --abbrev-commit --
$ git log --graph --pretty=oneline --abbrev-commit
# 显示从最近到最远的提交日志
日志输出一大串类似 3628164...882e1e0 的是commit_id (版本号),和 SVN 不一样,Git 的commit_id 不是 1,
2,3…… 递增的数字,而是一个 SHA1 计算出来的一个非常大的数字,用十六进制表示, 因为 Git 是分布式的版本控
制系统,当多人在同一个版本库里工作,如果大家都用 1,2,3……作为版本号,那肯定就冲突了
最后一个会打印出提交的时间等, (HEAD -> master)指向的是当前的版本
退出查看 log 日志,输入字母 q (英文状态)
6. 版本回退
$ git reset --hard HEAD^
$ git reset --hard <commit_id>
# HEAD 表示当前版本,也就是最新的提交
# HEAD^ 上一个版本
# HEAD^^ 上上一个版本
# HEAD~100 往上100个版本
# 回退到 commit_id 对应的那个版本,commit_id 为版本号,只需要前几位就行
7. 查看命令历史 (用于版本切换)
$ git reflog
假如我们依次提交了三个版本 a->b->c,然后昨天我们从版本 c 回退到了版本 b,今天我们又想要回到版本 c,此时就
可以使用 reflog 命令来查找 c 版本的 commit_id,然后使用 reset 命令来进行版本回退
8. 撤销修改
丢弃工作区 (Working Directory) 的修改
$ git restore <file> (建议使用) (如: git restore readme.txt)
$ git checkout -- <file>
# 命令中 -- 很重要,没有就变成 “切换到另一个分支” 的命令
丢弃暂存区 (stage/index) 的修改
# 第一步: 把暂存区的修改撤销掉(unstage),重新放回工作区
$ git restore --staged <file>
# 第二步: 撤销工作区的修改
$ git restore <file>
小结
$ git rm <file>
# git rm <file> 相当于执行
- rm <file>
- git add <file
其他命令
$ cat <file> 显示文件内容,如: cat readme.txt 就是在 git bash 中显示该文件内容
$ cd ~ 进入用户主目录
$ open ~/.ssh Mac 打开存放 ssh 文件夹
添加公钥的目的是省略我们每次都要输入密码的麻烦问题,有了它,在这台电脑上,我们就不用每次都输入密码了。
1. 创建 SSH Key
①在C:\Users\用户名\目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了
,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建钥匙,下面为命令
ssh-keygen -t rsa
如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有 id_rsa 和 id_rsa.pub 两个文件,这两个就是SSH Key 的秘钥对,
id_rsa 是私钥,不能泄露出去,id_rsa.pub 是公钥,可以放心地告诉任何人。
②. 基于上面,把你的公钥用文本文档打开,打开后Ctrl+A 声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/916537
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。