今天,还是继续介绍一下git基本使用,一个比较重要的功能,撤销操作
任何时候,你都有可能需要撤销刚才所做的某些操作,好,废话不多
情况1:修改最后一次提交
当我们提交完了,才发现有几个漏掉了,或者提交的说明消息写的不怎么准确,可以用--amend
如果不在对文件做任何操作,运行git commit --amend则相当于有机会修改提交说明
下面举个例子说明一下:
$ git commit -m 'initial commit'
$ git add forgoten_file
$ git commit --amend
以上这三条命令最终得到一个提交,第二次提交修正了第一次的提交
情况2:取消已经暂存的文件
如果有多个文件,我们想分次提交,一不小心,git add *,都加入了暂存区,这就得取消你这一次不想提交的文件,看下面
git reset HEAD xxxx.txt 其实在git status中,有该条命令的提示,请仔细查看
现在xxxx.txt文件的状态已经是修改未提交
情况3:取消对文件的修改
现在想想对xxxx.txt的修改有点莫名其妙,还是不要修改了,回到之前的状态,怎么办呢?
git checkout -- xxxx.txt,俗话说,有利就有弊,修改的部分操作就有没有了,请一定确认好是否要这样做,如果想保存修改的操作,又想回到之前的未修改的状态,后面会有说明,这就是git的数据恢复,很强大啊,慢慢来,不着急
在来一个比较重要的概念,远程仓库的使用
这个比较重要了,涉及到团队的合作问题了,一个项目毕竟要一个公共的,大家都可以访问的地方,根据不同的职责,分配不同的权限,来彼此查看项目的进度,下面好好谈谈远程仓库的管理和使用
1.查看当前的远程库
git remote : 当你克隆了一个项目后,至少可以看到一个origin的远程仓库,git默认使用这个名字来标识你所克隆的原始仓库
进一步,git remote -v : 可以输出远程仓库的地址
例如:$ git remote -v
origin git://github.com/xxxxxx/xxxxxx.git
如果有多个远程仓库,此命令会将远程仓库全部列出
test1 git://github.com/xxxxxx/xxxxxx.git
test2 git://github.com/xxxxxx/yyyyyy.git
...
2.添加远程仓库
git remote add test1 git://github.com/yyyyyy/xxxxxx.git
现在就可以用test1来指代对应的远程仓库了,比如想获取yyyyyy的项目中有的,而本地没有的,就可以使用git fetch test1,git fetch并不会把远程分支的数据合并到当前分支中,仅仅是拉取到本地,至于合并这些动作,需要你确定好之后,自己去手动执行,git fetch是用来抓取数据的
3.推送数据到远程分支
git push [remotebranch-name] [localbranch-name]
一般而言,使用git clone后,默认的情况是,本地使用master,远程使用origin,所以就是
git push origin master
推送是有条件的,只有当你对远程分支有写权限时,其他人没有对该分支的更新时;当项目中的其他人对分支有了更新操作,你必须先把他人更新后的操作fetch到本地,合并到本地分支钟,才能推送
4.查看远程分支的状态
git remote show [remotebranch-name]
这个命令输出的信息还是比较多的,建议大家多试验,多观察
5.远程仓库的删除和重命令
重命名:git remote rename
删除:git remote rm
比如,把远程分支pig改成dog,可以使用git remote rename pig dog
删除dog分支,git remote rm dog
注意:重命名后,对应分支的名称也发生了变化,pig/master ------> dog/masger
今天就到这,谢谢