开源的分布式版本控制工具,在所有的分布式版本控制工具中,git是最快、最简单、最流行的。
- 在很多情况下,git的速度远远比SVN快
- SVN是集中式管理,git是分布式管理
- SVN使用分之比较笨拙,git可以轻松拥有无限个分支
- SVN必须联网才能正常工作,git支持本地版本控制工作
- 旧版本的SVN会在每一个目录放置一个.svn,git只会在根目录拥有一个.git
git config user.name Lebron
: 配置用户名git config user.email [email protected]
: 配置邮箱git config --global user.name Lebron
: global,将此设置应用到整个系统中git config --global user.email [email protected]
: 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 -n
git 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-histories
git 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 // 没有加入版本控制