撤销操作:
注意:Git的有些撤消操作是不可逆的。 这是在使用Git的过程中,会因为操作失误而导致之前的工作丢失的少有的几个地方之一
取消暂存的文件
git add a.py b.py
git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage) #提示如何撤销
modified: a.py
modified: b.py
git reset HEAD b.py #取消暂存b.py
Unstaged changes after reset:
M b.py
git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: a.py
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory) #提示可以撤销对文件的修改
modified: b.py
撤消对文件的修改
git checkout b.py
git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: a.py
git checkout -- [file] 是一个危险的命令,如果执行了这个命令你对那个文件做的任何修改都会消失
远程仓库:
远程仓库是指托管在因特网或其他网络中的你的项目的版本库,远程仓库可以有多个,通常有些仓库对你只读,有些则可以读写
管理远程仓库包括了解如何添加远程仓库、移除远程仓库、管理不同的远程分支并定义它们是否被跟踪等等
查看远程仓库
git remote #查看当前所有的远程仓库
origin #origin 是Git给你克隆的仓库服务器的默认名字
-v选项,显示远程仓库的简写与其对应的URL
git remote -v
origin https://github.com/libgit2/libgit2 (fetch)
origin https://github.com/libgit2/libgit2 (push)
添加远程仓库
git remote add <shortname> <url> #添加一个新的远程Git仓库,同时指定一个简写
git remote add test https://github.com/huyuan1999/17-10-22.git #添加远程仓库
git remote -v
origin https://github.com/libgit2/libgit2 (fetch)
origin https://github.com/libgit2/libgit2 (push)
test https://github.com/huyuan1999/17-10-22.git (fetch)
test https://github.com/huyuan1999/17-10-22.git (push)
现在可以在命令行中使用test来代替整个URL
git fetch test #拉取远程仓库中的信息(本地工作目录中没有的信息)
从远程仓库中抓取与拉取
git fetch [remote-name] #拉取远程仓库中的数据(不会自动合并分支)
如果使用clone命令克隆了一个仓库,并将其添加为远程仓库默认以origin为简写。所以git fetch origin会抓取克隆后新推送的所有数据
git pull [remote-name] #自动的抓取然后合并远程分支到当前分支
默认情况下git clone会自动设置本地master分支跟踪克隆的远程仓库master分支,运行git pull通常会从克隆的服务器上抓取数据并自动尝试合并到当前分支
推送到远程仓库
git push [remote-name] [branch-name] #推送指定分支到服务器中
git push test master #git默认使用github做为远程仓库服务器,如果想要推送到远程仓库则需要有对应的账号和密码
查看远程仓库
git remote show test
* remote test #本地简写
Fetch URL: https://github.com/huyuan1999/17-10-22.git
Push URL: https://github.com/huyuan1999/17-10-22.git
HEAD branch: master #处于的分支
Remote branch:
master tracked #掌握跟踪
Local ref configured for 'git push':
master pushes to master (up to date)
远程仓库的移除与重命名
git remote rename test hu #重命名
git remote
origin
hu
git remote rm hu #移除
git remote
origin