赞
踩
行万里路,破万卷书
开源的分布式版本控制系统
Git
SVN(SubVersion)
CVS(Concurrent Versions System)
VSS(Micorosoft Visual SourceSafe)
TFS(Team Foundation Server)
Visual Studio Online
记录文件每次的更新,可以对每个版本做一个快照,或是记录补丁文件,适合个人用,如RCS。
所有的版本数据都保存在中央服务器上,协同开发者从服务器上同步更新或上传自己的修改,如SVN、CVS、VSS,不连网的话,用户就看不到历史版本,也无法切换版本验证问题
每个人都拥有全部的代码!安全隐患,工作的时候不需要联网了,因为版本都在自己电脑上
# 文件夹【目录】操作 # 创建文件夹,新建一个目录,[-m]【权限】、[-p]【递归创建】 mkdir [-mp] [目录名] # 删除一个文件夹,删除目录 [-r]【递归】 、[-f]【强制】、[-i]【互动】 rm [-rif] [目录名] # 删除一个空的目录 [-p] 【向上递归】 rmdir [-p] [目录名] # 重命名一个目录 [-f]【强制】、[-i]【互动】、[-u]【较新升级】 mv [-fiu] [目录1] [目录2] # 移动文件夹【剪切】 mv [目录1<相对路径>] [目录2<绝对路径>] # 改变目录 cd [目录] # 退回上一目录,直接cd是进入默认目录 cd .. # 复制目录 [-a]【-pdr】、[-d]【若是link,则复制link】、[-f]【强制】、[-i]【互动】、[-l]【复制为硬连接】 # [-p]【连文件一起复制,备份】、[-r]【递归】、[-s]【复制为软连接,快捷方式】、[-u]【较新升级】 cp [-adfilprsu] [来源档(source)] [目标档(destination)] # 搜索目录,例如 find . -name "*.txt" find [路径] [表达式] [名字] # 显示当前目录所在位置,[-p]【真实路径,不是link】 pwd [-p] # 查看当前目录的文件和目录,ll更详细 [-a]【查看所有包括隐藏】、[-l]【列表查询】 ls [-aAdfFhilnrRSt] ll
# 文件操作 # 新建一个文件[-a]【改变读取时间记录】、[-c]【目的档案不存在就不建立】、[-f]【不使用,为了兼容】、[-m]【改变修改时间记录】 touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][--help][--version][文件] # 删除一个文件,[-r]【递归】 、[-f]【强制】、[-i]【互动】 rm [-fir] [文件名] # 重命名【去掉目录】,或者移动一个文件 mv [文件名1] [目录<绝对路径>] [文件名2] # 编辑文件,命令模式-iao键-输入模式-Esc键-底线命令模式-:wq-保存退出-cat 文件名-查看 vim [文件名] # 查看文件内容 [-A]【相当於-vET,列出特殊字符】、[-b]【列出行号】、[-E]【显示断行$】、[-n]【列出行号,包括空白行】、[-T]【[tab] 按键以 ^I 显示】、[-v]【列出看不出的特殊字符】 cat [-AbEnTv] [文件名] # 倒序查看文件内容 tac [文件名] # 显示行号查看文件 [-b]【a:空行也列出行号,t:空行不列出行号】、[-n]【ln:行号在最左方,rn:右方显示,且不加 0,rz:右方显示,且加 0】 # [-w]【行号栏位的占用的位数】 nl [-bnm] [文件名] # 一页一页翻动 more [文件名] less [文件名] # 取出文件前面几行 head [-n number] [文件名] # 取出后面几行 tail [-n number] [文件名]
#查看系统config git config --system --list #查看当前用户(global)配置 git config --global --list #名称 git config --global user.name "xxy" #邮箱 git config --global user.email 11111@qq.com # 查看历史 history # 退出 exit
Workspace:工作区,就是你平时存放项目代码的地方
Index / Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
Repository:仓库区(或本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本
Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换
# 创建一个版本库 git init # 或 git clone [url] #查看指定文件状态 git status [filename] #查看所有文件状态 git status # 添加所有文件到暂存区 git add . # "消息内容"提交暂存区中的内容到本地仓库 -m 提交信息 git commit -m # 本地仓库提交到远程仓库 git push # 进入 C:\Users\Administrator\.ssh 目录 # 生成公钥 ssh-keygen #为注释 *.txt #忽略所有 .txt结尾的文件,这样的话上传就不会被选中! !lib.txt #但lib.txt除外 /temp #仅忽略项目根目录下的TODO文件,不包括其它目录temp build/ #忽略build/目录下的所有文件 doc/*.txt #会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged.
文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为Modified. 如果使用git rm移出版本库, 则成为Untracked文件
文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可进入暂存staged状态, 使用git checkout 则丢弃修改过, 返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改 !
暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态. 执行git reset HEAD filename取消暂存, 文件状态为Modified
# 列出所有本地分支 git branch # 列出所有远程分支 git branch -r # 新建一个分支,但依然停留在当前分支 git branch [branch-name] # 新建一个分支,并切换到该分支 git checkout -b [branch] # 合并指定分支到当前分支,需要处理冲突 $ git merge [branch] # 删除分支 $ git branch -d [branch-name] # 删除远程分支 $ git push origin --delete [branch-name] $ git branch -dr [remote/branch]
这次系统的复习了Git的使用方法,对以后工作会有很大的帮助。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。