提交文件到git
1.初始化一个Git仓库,使⽤用git init命令。
我们把文件往Git版本库⾥里添加的时候,是分两步执行的:(以下命令执行必须在本地仓库所在的文件中)
第一步是用“git add”把文件添加进去,实际上就是把文件修改添加到暂存区;(git add . 该命令一次性提交所有修改到暂存区)
第二步,使用命令git commit -m ‘<description>
‘完成。
2.关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git;
比如:git remote add origin git@github.com:turborup/repo.git,
3.关联后使用命令git push -u origin master第一次推送master分支的所有内容,此时远程仓库为空;
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;
其中-u的作用如下:
The -u tells Git to remember the parameters, so that next time we can simply run git push and Git will know what to do
远程提交注意
当将本地仓库文件提交到远程时,如果远程有readme.md文件,本地无,则提交失败,此时使用 git pull –rebase origin master 合并文件,然后提交。
删除关联的远程仓库
如果将一个本地文件已经git后关联到远程,本地的.git文件会记录以后提交时将要提交到远程的哪个仓库,这时,再将这个本地文件关联到远程的另一个仓库,会报错fatal: remote origin already exists.。除非删除远程仓库:git remote rm origin.此时本地仓库在远程已经没有关联的远程仓库了,这时,才可将本地仓库关联到另一仓库。当从别人远程仓库git clone 文件到本地时,只需要通过命令:git remte origin set-url URL ,URL为自己的远程仓库地址。
将关联的远程仓库修改为自己的远程仓库。此方法比
先删后加
git remote rm origin
git remote add origin git@github.com:Liutos/foobar.git
简单。
结果是一样的。
一些常用git命令
git add . 可以第一次提交本地仓库中所有文件
git rm readme.md 删除本地文件
git add -a 删除远程仓库文件时步骤: 先使用git add -a提交所有文件,再git commit 提交,然后提交远程,才能删除。
git status 查看本地工作区、暂存区中文件的修改状态
git log 查看每次提交的详细内容,每次提交都有一个唯一的hash值
git pull命令
git pull命令的作用是,取回远程主机某个分支的更新,再与本地的指定分支合并。它的完整格式稍稍有点复杂。
$ git pull <远程主机名> <远程分支名>:<本地分支名>
比如,取回origin主机的next分支,与本地的master分支合并,需要写成下面这样。$ git pull origin next:master 如果远程分支是与当前分支合并,则冒号后面的部分可以省略。
$ git pull origin next
git diff 命令
git diff与git diff HEAD – file的区别: 这里分为两种情况,一种是当暂存区中有文件时,另一种是暂存区中没有文件。
(1)当暂存区中没有文件时,git diff比较的是,工作区中的文件与上次提交到版本库中的文件。
(2)当暂存区中有文件时,git diff则比较的是,当前工作区中的文件与暂存区中的文件。
而 git diff HEAD –file,比较的是工作区中的文件与版本库中文件的差异。HEAD指向的是版本库中的当前版本,而file指的是当前工作区中的文件。
补充:git diff命令比较的是工作目录中当前文件与暂存区文件之间的差异,也就是修改之后还没有暂存起来的变化内容。
注意:git diff本身只显示尚未暂存的改动,而不是自上次提交以来所做的所有改动。所以,有时候你一下子暂存了所有更新过的文件后,运行git diff后却什么也没有,就是这个原因。
如果要查看已暂存的将要添加到下次提交里的内容,可以使用git diff –cached或者git diff –staged。
1.git reset –hard
2.git reset –soft
3.git reset –mixed 三个命令中 mixed 是最好的回退处理方式,这也是 git reset 的默认参数。
git checkout 命令
举例说明: 命令git checkout – readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;(上一次的git commit后,修改readme.txt 但没有执行git add,回到上一次的git commit后的结果)
一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。(修改readme.txt,并且git add,然后又修改了readme.txt, 此时执行git checkout,回到git add 后的状态)
总之,就是让这个文件回到最近一次git commit或git add时的状态。
总结git checkout 命令的使用
总结时间:
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout – file。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。
git branch命令
git branch 的功能是创建一个新分支
git checkout 命令
git checkout 的功能是切换到某个已创建的分支上。
git rm命令用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。
git merge 命令
git merge 命令 是用来合并两个分支的。
git branch -d 删除一个分支
git push命令 将本地仓库的修改提交到远程
其他命令
.cd .. 回到上一级目录
ll 会列出该文件下的所有文件信息,包括隐藏的文件,而 ls -l 只列出显式文件,说明这两个命令还是不等同的!
git学习资料
- git教学网站:http://try.github.com/
- git完整命令手册地址:http://git-scm.com/docs
- git bash下载地址:https://gitforwindows.org/