首页 > 代码库 > GIT
GIT
一、基础命令
git 是一个分布式版本管理工具,即可以将版本库分布在不同的终端,不同于集中式版本工具,但通常使用时,为了方便也会为 git 创建一个类似中央服务器的服务端,用于 push/pull 。
通过 git init 命令将当前文件夹初始化为一个 git 仓库,生成一个 .git 的隐藏文件夹。
git 有暂存区和工作区的概念,通过 git status 来查看工作区状态,通过 git add 将文件添加到暂存区,通过 git commit -m "commit" 提交版本到版本库。注意 git commit 和 git push 的区别,后者是推送到其它版本库。
使用 git 不同于 svn,必须要先通过 git add 将修改提交到暂存区,再通过 git commit 将暂存区所有记录提交到版本库。比如创建了一个文件,然后 git add 了,再对这个文件进行修改,然后 git commit ,就会丢失对这个文件的修改,因为后面的修改并没有提交到暂存区。
git 使用 HEAD 作为指向当前分支的指针,而分支的指针指向当前的提交,通过 git reset --hard `版本` 即可切换到任何指定的版本,为方便操作,HEAD表示当前版本,上一个版本可简写成 HEAD^,上上一个版本可简写为 HAED^^,上 n 个版本可简写为 HEAD~n,如:
git reset --hard eb34e70
git reset --hard HEADgit reset --hard HEAD^git reset --hard HEAD^^git reset --hard HEAD~3
使用 git log 可以查看所有旧版本提交历史(比当前版本更老的版本),如果需要查看比当前版本更新的版本信息,可以使用 git reflog 来查看命令操作记录。对于 git log 如果嫌输出内容太多,可以使用 git log --pretty=oneline
svn 放弃某个文件的修改,可以使用 svn revert 命令,git 也有类似操作,但 git 的回退命令分为工作区和暂存区,分别对应的命令是 `git checkout -- filename` `git reset HEAD filename`, git checkout -- filename 是将版本库中某个文件覆盖当前工作区中的文件, git reset HEAD filename 是将版本库中的某文件覆盖到工作区和暂存区中的某文件。
git rm 用于删除某个文件(记录在暂存区),然后通过 git commit 提交到版本库。
git地址可以使用 git 和 https 前缀表示,前者使用 ssh 协议,后者使用 https,一般推荐使用前者,后者速度比较慢且每次推送都需要输入口令。
关于分支:
查看分支:git branch创建分支:git branch <name>切换分支:git checkout <name>创建+切换分支:git checkout -b <name>合并某分支到当前分支:git merge <name>删除分支:git branch -d <name>
GIT