Git神器使用相关

Posted 小翁同学

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git神器使用相关相关的知识,希望对你有一定的参考价值。

感谢

感谢作者的网站,本文所有的知识可以在上述网站了解到,讲的非常详细,感谢。(https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000)

本文由上述网站总结复制而来,版权归原网站所有。

 

前言

什么是Git?什么是Github?

Git是目前世界上最先进的分布式版本控制系统(没有之一)。

Github是全球最大同性交友平台,咳咳,说错了,是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名gitHub。

什么是版本控制系统?

有一个软件,不但能自动帮我记录每次文件的改动,还可以让同事协作编辑,这样就不用自己管理一堆类似的文件了,也不需要把文件传来传去。如果想查看某次改动,只需要在软件里瞄一眼就可以。写代码什么的都需要版本迭代。

Git有啥子用?

当然是版本控制。比如写个code,结果想要回退前几天的版本,或者误删了等等,都可以恢复,时间追溯神器。

Git机理?

你在工作目录写代码,想要推送到本地库则需要先添加文件到暂存区,再commit到本地库,然后push到远程(不怕丢,当然更重要的是团队协作)。

对于个人而言,只使用本地功能完全OK,当然你可以申请github账号推送自己的仓库上去。

 流程:(还是申请个github吧)

个人总结:

基础命令答疑:

git init :初始化仓库。

git status :状态命令,我在哪,我是谁,我在干什么,此命令可解决你的疑惑。

git add xx :xx是文件名,你可以巴啦巴拉敲一堆你要推送的文件名,或者简单点,git add .  (这后边是个点),添加所有你更改未add的文件,一步到位。

git commit -m "xxxxxxx" :提交你的暂存区更改到分支中去。xxx是你想说的话,备忘录。

 

git rm xx :删除文件,不止是本地,add 和commit 后仓库中的同样的文件也会被删除。

git rm --cached  xx :删除暂存区的文件。

 

git log --oneline:显示提交日志,各种你做了更改的版本号可在此查看,oneline表示单行显示,比较精简。

git reflog :记录你所有运行过的指令。

git diff xx :比较工作区的文件与版本库中文件的不同。

 

版本回退三大金刚:

git reset --hard xxx :版本回滚,xxx为SHA1 版本号。要有hard。xxx前的commit会被保留。

git checkout xxx :不会改变master,只是改变工作区。

git revert  xxx :撤销xxx那个对应的commit,但会提交一个新的commit。新commit之前的commit都会被保留。 

 

git branch xx :新建分支xx。

git checkout xx : 切换分支到xx。一步到位新建并切换到xx :git checkout -b xx。

git branch -d xx :删除分支xx(合并完的)。

git branch -D xx :强制删除分支xx(尽管还没有被合并)。

git branch -a :显示当前所有存在的分支。

git merge xx :首先要切换到master分支,再运行此命令。会把xx分支合并到master分支。可能会合并冲突啦,冲突自己更改冲突再重新合并即可。

 

git remote add origin xxxx :添加远程仓库xxxx(项目地址)。

git remote -v :查看远程与本地的关联。

git push -u origin master :第一次推送master到远程仓库。以后推送就不用加u啦。u是关联远程master与本地master。

git pull origin master :拉取远程master到本地master。(更新的作用)

git clone xxxx :把远程的项目克隆到本地并自动关联好。

对于本地自己捣鼓:

1.新建一个文件夹,在文件夹下运行 git init;初始化仓库。

此时不要企图git branch xx (新建分支),因为还是空的,啥也没有。

2.新建文件,git add xx(或者 git add .   添加所有更改但是未被添加到暂存区的内容)。

git rm --cached xx (此命令会把暂存区的文件删除掉,如果你add 后不想commit了,这就是此命令大显神威的时候啦)

3.添加文件到暂存区后,git commit -m "注释(你想说的话)"     :此命令会把暂存区的文件提交到master。

(本来本地分支是空的,但你commit后会默认生成master分支了,文件被添加到master分支)。

其他的就随便捣鼓啦。

对于远程使用: 

1.由于本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以,需要一点设置:

1 ssh-keygen -t rsa -C "kingstacker_work@163.com"

你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可。

如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsaid_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。

在用户主目录下而不是工作目录,发现ssh文件夹:

2.添加远程库:

关联本地库,在工作目录下:

 git remote add origin git@github.com:kingstacker/test.git

origin表示远程的库,test表示repo-name,远程和本地的尽量一致,避免自己懵逼。

查看一下,关联ok:

推送本地库master到远程库中去:

 git push -u origin master

把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。

由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。

上github看一眼,跟本地 的是一致的。

SSH警告

当你第一次使用Git的clone或者push命令连接GitHub时,会得到一个警告:

The authenticity of host \'github.com (xx.xx.xx.xx)\' can\'t be established.
RSA key fingerprint is xx.xx.xx.xx.xx.
Are you sure you want to continue connecting (yes/no)?

这是因为Git使用SSH连接,而SSH连接在第一次验证GitHub服务器的Key时,需要你确认GitHub的Key的指纹信息是否真的来自GitHub的服务器,输入yes回车即可。

Git会输出一个警告,告诉你已经把GitHub的Key添加到本机的一个信任列表里了:

Warning: Permanently added \'github.com\' (RSA) to the list of known hosts.

这个警告只会出现一次,后面的操作就不会有任何警告了。

 

划重点:

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

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

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

 

 

基本命令可以在开头网站中或者git官网看。

 以上。

 

以上是关于Git神器使用相关的主要内容,如果未能解决你的问题,请参考以下文章

使用 Git 来管理 Xcode 中的代码片段

VSCode自定义代码片段——git命令操作一个完整流程

VSCode自定义代码片段15——git命令操作一个完整流程

VSCode自定义代码片段15——git命令操作一个完整流程

手机开发神器--Termux 介绍

如何管理在每个 git 版本中添加私有代码片段?