您的位置:首页 > 其它

GIT笔记:基础操作(1)

2017-12-19 00:52 375 查看

GIT笔记:基础操作


本笔记参考自廖雪峰的GIT教程,主要为一些基础命令的演示。一些可能需要理解的概念:

1.工作区与暂存区

2.生成并部署SSHKey

3.创建与合并分支

4.


创建版本库

1.选择或创建合适目录

$mkdirlearngit
$cdlearngit
$pwd
/Users/michael/learngit


2.将目录转变为仓库

$gitinit
InitializedemptyGitrepositoryin/Users/michael/learngit/.git/


3.将文件添加并提交到版本库

$gitaddreadme.txt

$gitcommit-m"wroteareadmefile"
[master(root-commit)cb926e7]wroteareadmefile
1filechanged,2insertions(+)
createmode100644readme.txt


文件回退

1.GITSTATE:

git-status-Showtheworkingtreestatus

命令可以让我们时刻掌握仓库当前的状态

mrsaber@mrsaber-PC:~/learngit$gitstatus
位于分支master
尚未暂存以备提交的变更:
(使用"gitadd<文件>..."更新要提交的内容)
(使用"gitcheckout--<文件>..."丢弃工作区的改动)

修改:readme.txt

修改尚未加入提交(使用"gitadd"和/或"gitcommit-a")


2.GITDIFF

git-diff-Showchangesbetweencommits,commitandworkingtree,etc

通俗来讲,就是查看提交的文件与以前的文件的不同

mrsaber@mrsaber-PC:~/learngit$gitdiffreadme.txt
diff--gita/readme.txtb/readme.txt
index46d49bf..9247db6100644
---a/readme.txt
+++b/readme.txt
@@-1,2+1,2@@
-Gitisaversioncontrolsystem.
+Gitisadistributedversioncontrolsystem.
Gitisfreesoftware.


3.GITADD

git-add-Addfilecontentstotheindex

4.GITCOMMIT

git-commit-Recordchangestotherepository

5.GITlOG

git-log-Showcommitlogs显示提交的历史记录

mrsaber@mrsaber-PC:~/learngit$gitlog
commit1c14f30c0f89fe3e3db97ecf6c505e94fe42853c(HEAD->master)
Author:mrsaber<mrsaber@foxmail.com>
Date:MonDec1823:06:042017+0800

测试

commit4d21c053774dbdd7dbd5ca3935bf88c4ea2f334e
Author:mrsaber<mrsaber@foxmail.com>
Date:MonDec1817:21:092017+0800

修改了一行文本



说明:


  commitid
(版本号),和SVN不一样,Git的
commitid
不是1,2,3……递增的数字,而是一个SHA1计算出来的一个非常大的数字


6.GITRESET

git-reset-ResetcurrentHEADtothespecifiedstate将当前状态重设到指定状态

mrsaber@mrsaber-PC:~/learngit$gitreset--hardHEAD^
HEAD现在位于4d21c05修改了一行文本



说明:

  在GIT中HEAD表示当前版本。上一个版本就是
HEAD^
,上上一个版本就是
HEAD^^
,当然往上100个版本写100个
^
比较容易数不过来,所以写成
HEAD~100




mrsaber@mrsaber-PC:~/learngit$gitlog//旧状态
commit4d21c053774dbdd7dbd5ca3935bf88c4ea2f334e(HEAD->master)
Author:mrsaber<mrsaber@foxmail.com>
Date:MonDec1817:21:092017+0800

修改了一行文本
mrsaber@mrsaber-PC:~/learngit$gitreset--hard1c14f  //新状态
HEAD现在位于1c14f30测试



说明:

  通过查找之前的ID,我们可以重设到未来版本,ID号不必写全,但是也不能太短,GIT会自动匹配查找。


7.GITREFLOG

gitreflog:可以查看历史命令。

mrsaber@mrsaber-PC:~/learngit$gitreflog
1c14f30(HEAD->master)HEAD@{0}:reset:movingto1c14f
4d21c05HEAD@{1}:reset:movingtoHEAD^
1c14f30(HEAD->master)HEAD@{2}:commit:测试
4d21c05HEAD@{3}:commit(initial):修改了一行文本


8.GITCHECKOUT

git-checkout-Switchbranchesorrestoreworkingtreefiles

$gitcheckout--readme.txt



说明:

  让这个文件回到最近一次
gitcommit
gitadd
时的状态。

  已经提交了不合适的修改到版本库时,想要撤销本次提交,需要进行版本回退。

  gitcheckout
其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”


9.GITRM

git-rm-Removefilesfromtheworkingtreeandfromtheindex

远程仓库

创建SSH-Key

mrsaber@mrsaber-PC:~/learngit$ssh-keygen-trsa-C"mrsaber@foxmail.com"//以后一路回车就好
Generatingpublic/privatersakeypair.
Enterfileinwhichtosavethekey(/home/mrsaber/.ssh/id_rsa):
Createddirectory'/home/mrsaber/.ssh'.
Enterpassphrase(emptyfornopassphrase):
Entersamepassphraseagain:
Youridentificationhasbeensavedin/home/mrsaber/.ssh/id_rsa.
Yourpublickeyhasbeensavedin/home/mrsaber/.ssh/id_rsa.pub.
Thekeyfingerprintis:
SHA256:Fwh9f+KQ77yXMaTrs5OS6I8QI5Ng81NR5ZZMeR1yuSAmrsaber@foxmail.com
Thekey'srandomartimageis:
+---[RSA2048]----+
|oo..o...oo|
|o.=E.ooo|
|+...*=..|
|.+o.o.o+|
|*oS.+=|
|+o.+o|
|..+o+|
|...oBo|
|.o..o+*|
+----[SHA256]-----+



git使用时遭遇theauthenticityofhostcan'tbeestablished:

修改/etc/ssh/ssh_config文件的配置,以后则不会再出现此问题

最后面添加:

StrictHostKeyCheckingno

UserKnownHostsFile/dev/null


添加远程仓库

添加远程仓库

  gitremoteaddgiteegit@gitee.com:mrsaber/SpringBoot_Plus.git

查看远程仓库信息

  gitremote-v

删除已有仓库

  gitremotermorigin

推送到码云

  gitpushgithubmaster

分支管理

$gitbranchdev//创建分支DEV
$gitcheckoutdev  //切换到分支DEV
Switchedtobranch'dev'

$gitbranch//查看当前分支
*dev
master

$gitmergedev//
命令用于合并指定分支到当前分支

$gitbranch-ddev//删除DEV




说明:

  



  因为创建、合并和删除分支非常快,所以Git鼓励你使用分支完成某个任务,合并后再删掉分支,这和直接在
master
分支上工作效果是一样的,但过程更安全。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐
章节导航