学习git

初始化一个Git仓库,使用git init命令。

添加文件到Git仓库,分两步:

  1. 使用命令git add <file>,注意,可反复多次使用,添加多个文件;
  2. 使用命令git commit -m <message>,完成。

要随时掌握工作区的状态,使用git status命令。

如果git status告诉你有文件被修改过,用git diff可以查看修改内容。

HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id

穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。

要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:

一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

  • git checkout -- file命令中的--很重要,没有--,就变成了“切换到另一个分支”的命令,

命令git reset HEAD <file>可以把暂存区的修改撤销掉(unstage),重新放回工作区:

 

 

又到了小结时间。

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD <file>,就回到了场景1,第二步按场景1操作。

场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。

本地Git仓库和GitHub仓库之间的传输是通过SSH加密的

 

Zai GIt上设置ssh

$ ssh-keygen -t  rsa -C "1248178733@qq.com"

Generating public/private rsa key pair.

Enter file in which to save the key (/c/Users/hp/.ssh/id_rsa):

Created directory '/c/Users/hp/.ssh'.

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /c/Users/hp/.ssh/id_rsa.

Your public key has been saved in /c/Users/hp/.ssh/id_rsa.pub.

然后再GitHub上添加 ssh key  (id_rsa.pub)

GIt上 上传文件

$ git remote add origin git@github.com:winner66/hyjkzj.git

$ git push -u origin master

 

要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git

关联后,使用命令git push -u origin master第一次推送master分支的所有内容;

此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;

 

$ git clone git@github.com:michaelliao/gitskills.git

 

    Ps: origin可以改为别人的名字,但是在你下一次push(提交)时,也要用你修改之后的名字。
$ git remote -v //查看你当前项目远程连接的是哪个仓库地址。
$ git push -u origin master //将本地的项目提交到远程仓库中。 ------------------------------------------------------------ 假如,你回到了家,想把公司提交的项目克隆到本地? 如果你是第一次想把github上面的项目克隆到本地或者要克隆别人的项目到地。
$ git clone git@github.com:xiahouzuoxin/zx-libsvm.git //在git下面切换到想存放此项目的文件目录下,运行这条命令就可以将项目克隆下来。

假如本地已经存在了这个项目,而仓库中又有一新的更新,如何把更的合并到本地的项目中?
$ git fetch origin //取得远程更新,这里可以看做是准备要取了
$ git merge origin/master //把更新的内容合并到本地分支/master ------------------------------------------- 项目中删除了一些文件,如何提交? 假如远程仓库中已经存了aaa这个文件,我fetch了下来,并删除了aaa这个文件,想再push上到远程仓库中,并使远程仓库中的项目被新的修改覆盖(也就是远程仓库中 的aaa也被删除)
$ git status //可以看到我们删除的哪些文件
$ git add . //删除之后的文件提交git管理。
$ git rm src/com/hzh/hibernate/dao/aaa.java //移除我们删除的那个文件,不然git不允许我们往远程仓库提交。 Ps: 如果你想删除的是某个目录(java包),这里想移除整个目录的内容。
$ git rm src/com/hzh/hibernate/bbb/ -r // -r 会把bbb/目录下的所有内容一次性移动。 ------------------------------------------------------------------------ 远程创建了一个新仓库,本地创建了一个新项目,如何使新的项目与仓库对应起来? 其实,这个也很简单,只是我当时对那些命令不太理解,所以比较模糊,不知如何对应。
$ git remote add origin git@github.com:xiahouzuoxin/zx-libsvm.git //还是这个命令,在你push项目之前加上这一句就OK了。 git@github.com:xiahouzuoxin/zx-libsvm.git 就是你常见的新仓库的地址啊。git切换到新项目下,在push之前,加上这一句,我们创建的新仓库就与新项目建立了连接。




posted @ 2019-12-15 12:55  winner66  阅读(130)  评论(0)    收藏  举报