1、三个基本配置

a、全局配置

  1. git config --global user.name "账户名称"
  2. git config --global user.email "邮箱地址"

b、创建一个新的版本库

git clone git@git.远程git地址
cd vue-todos
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master

添加全部信息使用 git add .

c、现有的文件夹或Git版本库

cd existing_folder
git init
git remote add origin git@git.远程git地址
git add . 
git commit 
git push -u origin master

2、本地模板推送流程

a、登录远程仓库的账户,

新建一个代码仓库:HelloWord
**

b、进入自己要推送的本地项目目录下然后:

命令:git init

c、将本地和远程仓库关联起来

命令:git remote add origin + 远程仓库url,例如:

git remote add origin git@github.com/kingCould/HelloWord.git

git remote add origin https://gitee.com/kingCould/HelloWord.git

I.直接命令修改

git remote set-url origin [url]

II.先删除后设新地址

git remote rm origin 
git remote add origin [url]

d、将本地代码推送到库上

命令:git push -u origin master:master(<远程主机名> <本地分支名>:<远程分支名>)

git add .

git commit -m 'first' -n

git push -u origin master

3、检查本地公钥

$ cd ~/.ssh 
(如果提示:No such file or directory 说明你是第一次使用git。
    如果不是第一次使用,请执行下面的操作,清理原有ssh密钥。 )

$ mkdir key_backup 
$ cp id_rsa* key_backup 
$ rm id_rsa*

4、生成新的公钥

ssh-keygen -t rsa -C “您的邮箱地址”
在回车中会提示你输入一个密码,这个密码会在你提交项目时使用,如果为空的话提交项目时则不用输入。您可以在你本机系统盘下,您的用户文件夹里发现一个.ssh文件,其中的id_rsa.pub文件里储存的即为刚刚生成的ssh密钥.

5、ssh公钥配置

1、打开git bash

2、执行生成公钥和私钥的命令:ssh-keygen -t rsa 并按回车3下(为什么按三下,
        是因为有提示你是否需要设置密码,如果设置了每次使用Git都会用到密码,一般都是直接不写为空,
    直接回车就好了)。会在一个文件夹里面生成一个私钥 id_rsa和一个公钥id_rsa.pub。
        (可执行start ~ 命令,生成的公私钥在 .ssh的文件夹里面)

3、执行查看公钥的命令:cat ~/.ssh/id_rsa.pub  (然后复制你的本地公钥到远程仓库)

4.其他:git push -u origin master 的理解
复制代码
把本地库的内容推送到远程,用git push命令,实际上是把当前分支master推送到远程。
由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程
新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
推送成功后,可以立刻在GitHub页面中看到远程库的内容已经和本地一模一样:
从现在起,只要本地作了提交,就可以通过命令:
$ git push origin 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.
这个警告只会出现一次,后面的操作就不会有任何警告了。

6、git fetch 和git pull 的差别

a. git fetch

其相当于是从远程获取最新到本地,不会自动merge,如下指令:

git fetch orgin master //将远程仓库的master分支下载到本地当前branch中

git log -p master  ..origin/master //比较本地的master分支和origin/master分支的差别

git merge origin/master //进行合并

也可以用以下指令:

git fetch origin master:tmp //从远程仓库master分支获取最新,在本地建立tmp分支

git diff tmp //將當前分支和tmp進行對比

git merge tmp //合并tmp分支到当前分支

b. git pull

其相当于是从远程获取最新版本并merge到本地

git pull origin master

git pull 相当于从远程获取最新版本并merge到本地
在实际使用中,git fetch更安全一些

7、合并dev_分支到master

假如我们现在在dev分支上,刚开发完项目,执行了下列命令:

git add .
git commit -m 'dev_'
git push -u origin dev_

然后我们要把dev_分支的代码合并到master分支上:
首先切换到master分支上

git checkout master

如果是多人开发的话 需要把远程master上的代码pull下来,这里pull会自动合并:

git pull origin master

然后我们把dev_分支的代码合并到master上:

git merge dev_

然后查看状态:

git status

控制台会出现如下信息:

On branch master
Your branch is ahead of 'origin/master' by 1 commit.
 (use "git push" to publish your local commits)
nothing to commit, working tree clean

上面的意思就是你有1个commit,需要push到远程master上
执行下面命令,提交到远程分支master:

git push origin master

8、回退版本

#查看日志
git log

image.png

a、回退某一版本

git reset --hard  2a7f5bf01396484cb1fabe6d7c8a738848fa8de0

再次通过git log发现已经退回了。

b、强制推送

git push -f

ref:https://www.cnblogs.com/wheatCatcher/p/10370886.html https://www.cnblogs.com/sdcs/p/8270029.html