GIT的使用

参考:Git教程 - 廖雪峰的官方网站

SSH密钥配置 

​​​​​​在Linux中配置ssh密钥,在Git中使用SSH协议访问Github_轻宇的博客-CSDN博客

下载以及上传仓库 

【Linux】Linux下使用git上传文件到GitHub_卑微楽的开发之路-CSDN博客

一种git可视化工具

linux下可视化git工具git-cola安装与使用(SSH方式)_百里杨的博客-CSDN博客_git linux 可视化

常用命令


Git 的版本库有一个称为 Stage 的暂存区以及最后的 History 版本库,History 存储所有分支信息,使用一个 HEAD 指针指向当前分支。

  • git add files 把文件的修改添加到暂存区
  • git commit 把暂存区的修改提交到当前分支,提交之后暂存区就被清空了
  • git reset -- files 使用当前分支上的修改覆盖暂存区,用来撤销最后一次 git add files
  • git checkout -- files 使用暂存区的修改覆盖工作目录,用来撤销本地修改

存档

git init //初始化
git log  //查看目前为止所有的存档
git status // 与当前存档相比, 哪些文件发生了变化

 存档时,需要使用 git status 查看是否有新的文件或已修改的文件未被跟踪, 若有, 则使用 git add 将文件加入跟踪列表

git add file.c   //将 file.c 加入跟踪列表
git add -A   //一次添加所有未被跟踪的文件

提交全部文件可能会跟踪了一些不必要的文件, 例如编译产生的 .o 文件, 和最后产生的可执行文件. 事实上, 我们只需要跟踪代码源文件即可。为了让 git 在添加跟踪文件之前作筛选, 可以编辑 .gitignore 文件(使用 ls -a 命令查看), 在里面给出需要被 git 忽略的文件和文件类型。把新文件加入跟踪列表后, 使用 git status 再次确认. 确认无误后就可以存档了,使用

git commit -m "XXX"

提交工程当前的状态. 执行这条命令后, 将会弹出文本编辑器, 需要在第一行中添加本次存档的注释, 例如"fix bug for xxx". 应该尽可能添加详细的注释, 将来需要根据这些注释来区别不同的存档. 编写好注释之后, 保存并退出文本编辑器, 存档成功. 之后可以使用 git log 查看存档记录, 能看到刚才编辑的注释.

分支功能

查看分支:git branch

创建分支:git branch <name>

切换分支:git checkout <name>或者git switch <name>

创建+切换分支:git checkout -b <name>或者git switch -c <name>

合并某分支到当前分支:git merge <name>

删除分支:git branch -d <name>


使用命令

git branch

查看所有分支. 其中 master 是主分支, 使用 git init 初始化之后会自动建立主分支.

使用以下命令切换分支

git checkout a9b4 //a9b4是是上文hash code的前缀,此处也可以直接用分支名

对代码的内容进行修改, 使用

git checkout -b 分支名

把修改结果保存到一个新的分支中, 如果分支已存在, 其内容将会被覆盖

此外 语句

git checkout -b dev origin/dev

表示 切换到dev分支上,接着跟远程的origin地址上的dev分支关联起来

远程分支下载到本地来

法一:先在github上新建一个仓库,然后在linux上将本地的仓库对与github仓库进行关联,当然也可选择将本地仓库与github上已有的仓库相关联。

 git remote add origin https://github.com/‘git用户名’/‘git仓库名’

注意,git给远程库(即remote的意思)起的默认名称是origin,如果有多个远程库,比如同一个本地仓库在gitee和github上都有仓库,我们需要用不同的名称来标识不同的远程库 ,如下。

 git remote add gitee https://gitee.com/‘gitee用户名’/‘gitee仓库名’

完成后可以用指令git remote -v来查看不同的远程库情况;

在提交时,根据git push origin master和git push gitee master命令的不同,可以提交到不同远程库。

此外git remote rm XXX可以用来删除远程库

git add -A;
git commit -m "XXX";
git push origin master  //将分支master提交

法二:如果是从零开始搭建的话,可以在github上先新建一个仓库,接着在linux上用克隆命令将仓库克隆下来

git clone git@github.com:aijianjinanyihao/vegetable-dog.git//此处放的是ssh链接
git clone -b <分支名> 仓库地址  //克隆指定分支
git add -A;
git commit -m "XXX";

后面就可以提交了

git push origin master  //将分支master提交

不同的分支合并

假设已经有了分支master,要创建一个新的分支dev,并将dev修改后与master合并。

首先,我们创建dev分支,然后切换到dev分支:

$ git checkout -b dev
Switched to a new branch 'dev'

git checkout命令加上-b参数表示创建并切换,相当于以下两条命令:

$ git branch dev
$ git checkout dev
Switched to branch 'dev'

然后,用git branch命令查看当前分支:

$ git branch
* dev
  master

git branch命令会列出所有分支,当前分支前面会标一个*号。

然后,我们就可以在dev分支上正常提交,比如对readme.txt做个修改,加上一行:

Creating a new branch is quick.

然后提交:

$ git add readme.txt 
$ git commit -m "branch test"
[dev b17d20e] branch test
 1 file changed, 1 insertion(+)

现在,dev分支的工作完成,我们就可以切换回master分支:

$ git checkout master
Switched to branch 'master'

切换回master分支后,再查看一个readme.txt文件,刚才添加的内容不见了!因为那个提交是在dev分支上,而master分支此刻的提交点并没有变:

现在,我们把dev分支的工作成果合并到master分支上:

$ git merge dev
Updating d46f35e..b17d20e
Fast-forward
 readme.txt | 1 +
 1 file changed, 1 insertion(+)

git merge命令用于合并指定分支到当前分支。合并后,再查看readme.txt的内容,就可以看到,和dev分支的最新提交是完全一样的。

注意到上面的Fast-forward信息,Git告诉我们,这次合并是“快进模式”,也就是直接把master指向dev的当前提交,所以合并速度非常快。

当然,也不是每次合并都能Fast-forward,我们后面会讲其他方式的合并。

合并完成后,就可以放心地删除dev分支了:

$ git branch -d dev
Deleted branch dev (was b17d20e).

删除后,查看branch,就只剩下master分支了:

$ git branch
* master

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

远程库代码更新到本地仓库:git pull

git pull用法:取回远程库某个分支的更新,再与本地的指定分支合并。

git pull = git fetch + git merge

git fetch不会进行合并,执行后需要手动执行git merge合并分支,而git pull拉取远程分之后直接与本地分支进行合并。更准确地说,git pull使用给定的参数运行git fetch,并调用git merge将检索到的分支头合并到当前分支中。

基本用法:

git pull <远程主机名> <远程分支名>:<本地分支名>

例如执行下面语句:

git pull origin master:brantest

将远程主机origin的master分支拉取过来,与本地的brantest分支合并。

后面的冒号可以省略:

git pull origin master

表示将远程origin主机的master分支拉取过来和本地的当前分支进行合并。

本地代码更新到远程库

将本地当前分支 推送到 远程指定分支上

git push origin <本地分支名>:<远程分支名>

将本地当前分支 推送到 与本地当前分支同名的远程分支上

git push origin <本地分支名>

 此外如果本地库和远程库没有关联的话,需要使用语句来建立连接

git branch --set-upstream <本地分支> origin/<远程分支>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值