##后续会继续补充
GIT与SVN差别:
1、SVN的安全控制和权限管理更好,非分布式,GUI工具,SVN分支是复制全部文件,是一个完整的目录
2、GIT的分支是优势,只是获取元素而非复制,分布式工作方式,而且GIT是镜像,需要更新全部内容,内容存储使用SHA-1哈希算法,保证了内容完整性,GIT离线状态也可看到所有的log
#GIT
mkdir project # 创建项目目录
cd project # 进入到项目目录
git init # 初始化 git 仓库。此命令会在当前目录新建一个 .git 目录,用于存储 git 仓库的相关信息
#初始化提交
touch README
git add . # 将当前目录添加到 git 仓库中, 使用 git add -A 则是添加所有改动的文档
git add file# 将当前文件添加到 git 仓库中
git commit -m "Initial commit"
git remote add origin git@github.com:lugir/repo.git # 设置仓库
git remote set-url origin http://username:password@git.git #设置fetch或push的链接
git remote -v #查询链接
#修补提交(修补最近一次的提交而不创建新的提交)
git commit --amend -m "commit message."
#提交冲突时可以合并后再推送
git pull # 获取远程版本库提交与本地提交进行合并
git push # 提交
git push origin master --force#本地强制覆盖远程
git push origin master:master#提交本地分支
#使用别人的仓库
git clone http://path/to/git.git # clone 的内容会放在当前目录下的新目录
#将代码从本地回传到仓库
git push -u origin master
#使用 git status 查看文件状态
git status
#使用 gitdiff 查看修改的文件
git diff
#查看提交日志
git log # 查看提交信息
git log --pretty=oneline # 以整洁的单行形式显示提交信息
git config -l#查看所有参数
git config --global user.name "ammafree"#设置全局name
#Git 分支
git branch # 查看本地分支
git branch -a# 查看所有分支
git branch -r# 查看远程分支
git branch 6.x-1.x # 添加分支 6.x-1.x
git branch -d 6.x-1.x # 删除分支 6.x-1.x
git checkout master # 切换到主分支
git checkout -b 6.x-1.x# 创建并切换到分支 6.x-1.x
git push origin :branchname # 删除远端分支
git reset #回滚add Index
git reset --soft HEAD^ # 回滚最近一次的commit(可直接commit,无需add)
git reset --mix#需要先add再commit
git reset --hard HEAD~3 # 回滚最近三次commit(完全还原)
git rm -r --cache file #将文件移除版本管理
git stash #将做好的东西暂存
git stash pop #
git stash list#
git stash clear #
#Git 标签
git tag # 查看分支
git tag 6.x-1.0 # 添加标签 6.x-1.0
git show 6.x-1.0 # 查看标签 6.x-1.0 的信息
git tag -a 6.x-1.0 965e066 # 为之前提交的信息记录 965e066 加上标签
git push --tags # 提交时带上标签信息
git push origin :/refs/tags/tagname # 删除远端标签
#从 git 仓库中导出项目
git archive --format tar --output /path/to/file.tar master # 将 master 以 tar 格式打包到指定文件
#使用 Git 的一些基本守则: 当要commit/提交patch时:
#使用 git diff --check 检查行尾有没有多余的空白
#每个 commit 只改一件事情。如果一个文档有多个变更,使用 git add --patch 只选择文档中的部分变更进入 stage
#写清楚 commit message
#SVN
svn revert# 回滚未提交的改动(未commit的)
svn merge [-r] [最新版本号:要回滚的版本号] [something]# 合并已提交的改动(已commit),需先svn update获取到最新的代码
svn commit -m "some message"# 提交
svn log # 日志
svn diff [-r] [最新版本号:要回滚的版本号] [something] #