(一)使用前需要创建一个本地仓库,可以通过git init或则从远程服务器中git clone
git clone 获得存放在远程服务器中的已被纳入版本控制系统的项目 格式:git clone 路径
git init git项目初始化(项目的根目录一般都是项目的工作目录或者副本,在本地计算机中只允许存在一个项目版本的工作副本
(二)在本地有一个git仓库的基础上,开始正常工作,例如修改、删除、增加、拷贝、重命名等。
git log 提交日志(查看提交项目的时间顺序)作比较
在版本控制系统中用来显示两个版本之间差别的操作称为“diff”或者“patch”。
在不带任何参数的情况下,git diff会为我们给所有在本地副本中还未被打包(unstaged)的变化做个比较,并显示出来。如果仅仅想查看对于已被打包的结果,可以使用git diff --staged命令
git log -p
git diff master..another_branch
git diff 0023cdd..fcd6199
(三)提交前,如果需要一个到目前为止,详细改动太狂,可以使用git status来得到一个域上吃提交对比后的改动列表。
改动后使用git status可以获得上吃提交后的所有改动详情。
git提供相当详细的中介,包括三类:
“Changes not staged for commit” 改动的文件,但没有打包在下次提交中。
Changes to be committed” 改动的文件,并且已打包在下次提交中。
Untracked files” 未被追踪的文件。
(四)告诉git,在本地项目中,想打包哪些被改动的文件到下次提交中。一个文件被改动后,并不意味者它会被制动打包在下次提交中,相反,必须明确的指出需要打包哪些文件。也就是说需要将它们添加到所谓的暂存区(Stagin area)。
git add -A 把文件放到暂存区 格式 git add test.txt 一般来说,git中文件有两种状态,未被追踪(untracked)和已追踪(tracked)
(五)在暂存区已经存在了一些改动过的文件,现在轮到提交它们了。应该提供一个简短明确的注释(commit message)来描述则此改动做了什么。
git commit -m "Initial commit"
将代码提交到代码库 -m “提交的信息说明”
注释此次提交。如果注释很长,包括很多段落,那就不需要使用“-m”参数,git会打开一个文本编辑器(哪个文本编辑器,可以在core.editor中设置。)
(六)如果想了解一下整个项目的开发状况,使用git log来查看时间顺序列出的所有提交改动。
git log 提交日志(查看提交项目的时间顺序
(七)当处于团队协作开发时,需要和其他开发团队成员共享改动,一个在服务端的远程仓库(remote reposity)就可以用来进行数据交换。
分享改动
当修改完成之后,就该将新的改动共享给其他开发人员了。使用git push命令完成。
git push命令会将当前HEAD分支上说有新的提交上传到它所关联的远程分支上去。
it push默认地要求我们为它提供两个信息:想推送到哪个远程仓库上去,想要推送到哪个远程仓库上的哪个分支上去。命令的完整应该是
(八)当想撤销某个以前的提交
git revert hashcode 撤销已提交的改动
git reset --hard hashcode 回滚到旧版本
注:(1)分支
git中,分支功能不可选,必须工作在一个分支中(当前的“active”,或者“HEAD”,或则“checked out”)
需要了解当前在哪个分支上,git status命令的输出可以看到。
git branch contact-form
git branch -v
git checkout contact-form 签出一个分支 (在新的分支上做的提交,不会影响到其他分支。 切换分支
git merge 整合分支
git branch -dr origin/contact-form 删除分支
(2)暂存更改
使用git stash pop将调回最新的储藏单元,并且将它从剪切板中删除掉
使用git stash apply <stashname>来调回给出的储藏单元,这个储藏单元不会被删除
使用git stash drop <stashname>来删除。git在不给定特定储藏储单元的情况下会自动处理最新的储藏单元