开源的分布式版本控制工具,在所有的分布式版本控制工具中,git是最快、最简单、最流行的。
- 在很多情况下,git的速度远远比SVN快
- SVN是集中式管理,git是分布式管理
- SVN使用分之比较笨拙,git可以轻松拥有无限个分支
- SVN必须联网才能正常工作,git支持本地版本控制工作
- 旧版本的SVN会在每一个目录放置一个.svn,git只会在根目录拥有一个.git
git config user.name Lebron: 配置用户名git config user.email youremail@exmaple.com: 配置邮箱git config --global user.name Lebron: global,将此设置应用到整个系统中git config --global user.email youremail@exmaple.com: global,将此设置应用到整个系统中git --help: git指令帮助git config -l: 查看配置信息git config -e: 编辑配置信息 (用vim编辑,输入i进行编辑,:wq是退出编辑)git config alias.别名 原指令名称: 设置指令别名git config -alias.别名 原指令名称 参数: 设置带参数指令的别名git status: 查看文件状态git log: 查看文件的修改日志;1)用一行的方式查看简单的日志信息:git log --pretty=oneline;2)查看最近n次修改:git log -ngit diff: 查看文件最新的改动地方git init: 初始化一个空的本地仓库git add: 将工作区的文件保存到缓存区;保存当前路径的所有文件到缓存区:git add .(注意后面的点)git commit -m "注释" 文件名称:将缓存区的文件提交到当前分支git reflog: 查看分支引用记录,能查看所有版本号git reset: 版本回退(建议加上--hard参数,git支持无限次后悔);2)git reset --hard HEAD^:会退到上一个版本;3)git reset --hard HEAD^^:回退到上上一个版本;4)git reset --hard HEAD~n:回退到上n个版本;5)git reset --hard 版本号:回退到任意一个版本,版本号用7位即可git rm: 删除文件,删除完之后要进行commit操作,才能同步到版本库git clone: 下载远程仓库到本地git pull: 下载远程仓库的最新信息到本地仓库git push: 将本地仓库信息推送到远程仓库git rebase -i: 合并git checkout test: 切换分支到testgit push origin lz-flurry-99:lz-flurry-99: 推送本地分支到远程分支git branch -d xxxxx: 删除本地分支git cherry-pick 9f63dd6: 把commit放到另一个分支上git push origin --delete <branchName>: 删除远程分支,或者用git push origin :<branchName>git branch -m 原分支名 新分支名: 分支重命名
git add .: 他会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件。git add -u: 他仅监控已经被add的文件(即tracked file),他会将被修改的文件提交到暂存区,不会提交新文件(untracked file)git add -A: 上面两个功能的合集(git add --all的缩写)
总结:
git add -A: 提交所有变化git add -u: 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)git add .: 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件
git remote add origin 地址git pull origin master,如果提示refusing to merge unrelated histories,使用git pull origin master --allow-unrelated-historiesgit push -u origin master
M = Locally modified 本地修改
U = Updated in repository 在仓库中被更新
A = Locally added 在本地添加
D = Locally deleted 在本地删除
I = Ignored 被忽略
R = Replaced in the repository 在仓库中被替换
– = The contents of the folder have mixed status; display the contents to see individual status // 文件夹中的文件有多种状态(被修改、更新、添加、删除等等)
? = Not under source control // 没有加入版本控制