git配置本地仓库

1. 变量的配置

1.1 全局变量的配置

  • git config --global user.name
    全局用户名,这个名字在ssh模式下可以随便设置
  • git config --global user.email
    这个用户名和邮箱是可以随便配置的(不提倡),如果你配置的邮箱是github里真实存在的邮箱,则commits里显示的是这个邮箱对应的账号;如果配置的邮箱是一个在github里不存在的邮箱,则commits里显示的是你配置的用户名。
  • git config --global user.xxx “xxx”
    用于配置全局用户名或者地址

1.2 局部变量的配置

  • 在0.1基础上去掉–global参数,配置的即为局部用户名或者地址
  • 局部变量多用于特定仓库中
  • 使用变量的时候优先从局部变量中搜索

1.3 ssh公钥的配置

输入ssh-keygen(并不需要加参数,因为默认的生成的公钥已经足够)生成公钥私钥。在~/.ssh/目录下找id_rsa.pub,将内容复制添加到你的网页远端的ssh公钥处。这样在提交修改后代码的时候就不用再输入账号密码验证了。因为你机器上生成的公钥已经给了网页服务端,它可以通过这个验证。
远端网页服务器添加多个公钥,就表明这些公钥对应的私钥所在客户端和远端服务器通信的时候都不需要密码验证了。

2. 初始化仓库

注意git只是分布式客户端管理仓库,所以服务端需要先有仓库

2.1 拉取别人的仓库做开发建设的情况

  • 在网页fork别人的仓库为自己的
  • 在本地创建一个文件夹test,进去执行下面的操作
    git init
    git config user.name “xxx”(这里是配置局部变量,如果你的全局变量配置对应着你的gitee,也可以不用设置局部变量的)
    git config user.name “xxx”
  • 这一步添加你for的仓库
    git remote add 仓库别名 url
    可以换成ssh的url,这样提交时就不用验证了。
  • git pull
    拉取远端仓库内容以同步仓库状态,之后就可以修改
  • 提交
    git add .
    git commit -m “xxx”
    git push 仓库别名 master

2.2 拉取自己仓库情况

在2.1配置远端仓库的时候,将url设置为自己的远端仓库即可。

3. git版本控制

在本地仓库里,可使用此功能回退到相应版本的代码处,版本号可以从网页服务器端获取。
git reset --hard 版本号
此功能多用来找丢失文件或者回退到稳定版本
!!!注意,找到文件后,应该让本地仓库回到最新版本状态。

4. git分支管理

  • master分支是默认分支,一般是软件正式发布的正确代码
  • 在本地仓库可以创建新分支
  • 本地仓库可以切换到新分支,在新分支中进行的修改,不会影响master分支
  • 可以将新分支merge到master分支,实现分支合并
  • 命令
    git branch
    #查看分支
    git branch 分支名
    #创建以此分支名为名字的分支
    git checkout 分支名
    #转到此分支
    git push 仓库别名 分支名:分支名
    #提交此分支的内容,冒号意思是,如果远端仓库没有此分支则创建一个此分支
    git merge 分支名
    #将分支名所表示分支合并到当前分支。直接进入分支,不会让文件处于工作区或者暂存区。

5. 工作区,暂存区,仓库分支

工作区文件是红的
暂存区是绿的add可以提交到暂存区
git status可以查看当前分支工作区和暂存区状态

6. 快速开发

在配置好ssh情况下,直接在仓库文件夹下clone远程仓库,url选择ssh版本的,在此仓库中可以直接进行修改文件等一系列操作。前提是此仓库是你自己主页的,而不是从别人主页clone来的。如果想要别人的仓库,自己可以先fork一份。

7. http模式

push的时候需要输入仓库所在账号密码才能成功push成功

8. 初始管理远程所有分支

  • git clone url
    默认只拉取HEAD指向的master分支,其他的分支没有拉取到本地
  • git -b(branch) 分支名
    拉取指定分支到本地
  • git branch -a
    查看所有分支,包括此仓库的所有远端分支名
  • git checkout -b 本地分支名 origin/远端分支名
    创建本地分支a,转到本地分支a,并将远端分支关联到本地分支
  • git branch -d 分支名
    删除本地分支
  • git push origin --delete BranchName
    删除远端分支

9. 一般的git提交分支流程

  1. 拉取master
  2. 以master为基创建dev开发分支
  3. 开发…开发完成,有多个dev本地commit
  4. 将多个dev本地commit合并为一个
  5. pull master获取master最新内容
  6. 将master rebase到 dev,在dev中解决冲突问题
  7. 将dev merge到master,让本地master处于在服务端的最新版本基础上又添加了自己的改动的最新状态
  8. 提交master到远程仓库

具体如下

  • 拉取远端master分支
  • 建立master为基的分支dev
    在master中使用git branch dev创建,就是以master为基创建dev分支
    如果用git checkout -b dev则新创建的分支和master没有关系,也没有任何内容
  • 在dev中进行修改工作,该提交本地仓库就提交
  • 修改工作完成后,先回到master,pull最新master
    此处是master有可能在远端被其他开发者更改了,所以需要先把master最新信息同步到本地master
  • 回到dev
    git rebase -i HEAD~number
    将dev分支中的number个提交化为一个提交
    可以修改弹出来的内容为除了第一项之外前面都改成s,表示合并提交到一次中(本来一个commit就是一次提交)
  • git rebase master
    由于dev是基于master产生的,所以这一步的意思是将master内容合并到自己修改之处。此处合并若有冲突产生,则rebase过程会停止,在自己开发仓库中处理冲突。
  • git status
    使用此命令查看冲突文件
    使用vim打开冲突文件进行修改删除git给你添加的冲突标志线和其他提示信息。然后保存退出编辑器。但是我们需要将rebase过程走完。
  • git rebase --continue
    这一步是继续进行将master合并到自己的dev开发分支,也就是将rebase或称走完。合并完毕后,自己的dev开发分支就处于最新远端仓库的版本上又添加了自己内容的状态
  • 回到master,将dev分支合并到master
    因为我们dev分支中除了有当前master的内容,又加上了我们自己的内容。
    git checkout master
    git merge dev
    合并完毕之后提交
    git push origin master

追加:回退历史版本
1、使用git log命令查看所有的历史版本,获取某个历史版本的id 比如:42294a2adc041c6b37d99fd776dac00a425e4b96

2.恢复到历史版本

git reset --hard 42294a2adc041c6b37d99fd776dac00a425e4b96
1
3、 把修改推到远程服务器( 注意:reset之后push到远程上会删除这个历史版本之后的所有版本 )。

git push -f -u origin master
1
备注:强制push到远程 master分支

备注:

穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。

你可能感兴趣的:(笔记,git,github,ssh)