GIT:分布式版本控制
感觉还是用git比较方便一点吧,每次打开网页都太慢太麻烦了。
1.基本操作与命令
git config可以配置git的参数,可以使用git config --list
查看已经配置的git参数。其中有三个级别的保存位置,--system
、--global
、--local
,分别表示所有用户(本系统)、当前用户(全局)、本地配置(当前目录),默认使用--local
。
1.1 配置用户名及邮箱
在使用Git提交前,必须配置用户名和邮箱,这些信息会永久保存到历史记录中。
1 | git config --global user.name "xxxxx" |
1.2 创建git仓库
git init
初始化当前目录,创建git仓库
1.3 获得git仓库
如果需要克隆远程仓库,可以使用git clone
,比如:
1 | git clone http://www.purple.work:1234/chenzhuo/cat.git |
1.4 提交更新
我们获取的Git仓库中的所有文件都是committed状态,如果你在本地修改了文件a,a的状态就变成modified的;如果使用git add a
,a的状态变成staged;如果使用git commit
,a的状态就变成commited。这种状态变化也说明复制代码是很方便的,但是提交更新请慎重。
当然还有一种文件状态,未跟踪状态(unversioned/untracked),通过使用git add
可以把未跟踪状态变更为staged;通过git rm
可以将staged或者committed状态变为未跟踪状态。
git status
这个命令可以在提交前检查一下修改了哪些内容,以及当前git目录下的各文件的状态。
1 | git status |
git add
可以添加文件或目录,也可以使用通配符:
1 | git add Readme.md # add file only |
git diff
git diff
可以查看当前目录的所有修改。
提交之前,还是单独确认下处于staged状态的文件有哪些,并保证修改正确。在实际应用中,可能还需要使用git diff
导出PATCH做代码走读。
可以使用git diff --staged
或git diff --cached
查看staged与上次提交快照之间的区别。
git commit
提交前需慎重。直接调用git commit
会弹出编辑器,输入提交日志(如果是多行日志,建议使用)。
针对单行日志提交的情况,可以使用如下命令:git commit -m "add readme"
。
还有一种快捷的提交方式,直接跳过stage缓存区,直接提交当前目录下的所有修改git commit -a
(使用这个命令前建议确认下当前目录的修改是否正确、必须)。
git rm
git rm
会把文件从当前目录删除(不会保存删除的文件)。如果需要从Git仓库中删除,但保留在当前工作目录中,亦即从跟踪清单中删除,可以使用git rm --cached readme.md
。
1.5 远程仓库
可以使用git remote
查看当前的远程库。
git remote -v
可以显示对应的克隆地址。(对于多个远程仓库很有用)
添加远程仓库
git remote add [short_name] [url]
可以添加新的远程仓库。
从远程仓库抓取数据
1 | git pull 可以把远程仓库最新的代码拉取下来。 |
推送数据到远程仓库
git push
默认使用origin和master。
查看远程仓库信息
1 | git remote show origin |
远程仓库的删除和重命名
1 | git remote rename [old_name] [new_name] |
1.6 git分支
显示所有分支
使用git branch
可显示当前所有分支。
可以使用–merged和–no-merged查看已经合并、未合并的分支。
创建及切换分支
可以使用下面命令直接切换并创建分支
git checkout -b testing
等价于
1 | $ git branch testing # 创建testing 分支 |
注意切换分支时请保持工作目录没有未提交的修改。Git鼓励使用分支,处理完问题之后合并分支即可。
分支合并
将hotfix分支合并到master(主分支)上,需要通过下面命令:
1 | $ git checkout master |
合并之后可以使用git branch -d hotfix
删除分支。
如果合并时存在冲突,需要手工修改。
(转载自 https://www.cnblogs.com/tocy/p/git-command-line-manual.html)