SVN是集中式管理,只在服务器上存在完整的历史记录
GIT是分布式管理,每个人都拥有一个完整的仓库
Repo/GIT
cd .repo/rep
git pull origin
repo start master --all 在每个git下建立本地名称master的分支
查看当前git库的配置信息
cat .git/config
如果不知道git库对应的路径,可以到.repo目录下查看manifest.xml文件,project和path一一对应
添加git全局范围的用户名和邮箱:
git config --global user.email 123@163.com
git config --global user.name 123
git config --global --unset user.name
git config --global --unset user.email
git clone 时增加 --depth 参数,进行浅克隆,只克隆指定数量的历史记录。代表只克隆最近一次 commit 的分支
git clone --depth=1 https://github.com/test/test.git
浅克隆后怎么获取完整内容?将浅层存储库转换为完整存储库
git pull --unshallow 或者 git fetch --unshallow
清除一些自动生成文件
git clean -dfx
查看文件修改历史:
git blame 文件名
git diff比较的是工作目录中当前文件和暂存区域快照之间的差异, 也就是修改之后还没有暂存起来的变化内容。
git diff *
若要查看已暂存的将要添加到下次提交里的内容,可以用 git diff --cached 命令。git diff 本身只显示尚未暂存的改动,而不是自上次提交以来所做的所有改动。 所以有时候你一下子暂存了所有更新过的文件后,运行 git diff 后却什么也没有,就是这个原因。
git diff --cached
对所有的git库做reset动作,和服务器分支对齐,repo forall -c 是递归操作的意思
repo forall -c "git reset --hard HEAD;"
提交修改:
git branch -a
git branch -D
git checkout -b branchname remoteBranchName 新建分支
git checkout branchname 切换分支
git push branchName HEAD:refs/drafts/remoteBranchName 草稿
git push branchName HEAD:refs/for/remoteBranchName 正式
git push origin HEAD:refs/for/master
git commit -m
git commit --amend
repo upload . --cbr
apply diff文件,需要进入到当前git的根目录
git diff 当前分支名字> patch.diff 可以产生diff文件
git apply --ignore-whitespace --directory=正确的目录 使用diff文件
对于已经git add的文件做撤销处理:
git reset HEAD^ filePath/fileName
清除修改可以
git reset commitid
git checkout filepath/filename
查看一个文件依赖的接口
arm-linux-guneabi-readelf -a processname |grep NEED
从git add里删除文件
git rm <file>
git rm <file> --cached
git help commond 查看帮助
git help diff
repo help 查看和repo相关帮助
TortoiseGit
TortoiseSVN