git 总结-阿里云开发者社区

开发者社区> 安全> 正文
登录阅读全文

git 总结

简介:

1.定义:

Git不仅是一款开源的分布式版本控制系统

2.特点:

Git则是关注于文件数据整体的变化,直接会将文件提交时的数据保存成快照,而非仅记录差异内容,并且使用SHA-1加密算法保证数据的完整性。Git为了提高效率,对于没有被修改的文件,则不会重复存储,而是创建一个链接指向之前存储过的文件。

3.Git的三种重要模式,分别是已提交、已修改和已暂存:

已提交(committed):表示数据文件已经顺利提交到Git数据库中。
已修改(modified):表示数据文件已经被修改,但未被保存到Git数据库中。
已暂存(staged):表示数据文件已经被修改,并会在下次提交时提交到Git数据库中。

4.安装:

yum install -y git


配置个人的用户名和邮箱
git config --global user.name "wensong"
git config --global user.email "719629214@qq.com"

配置默认编辑器为vim
git config --global core.editor vim

5.命令
1.提交数据:

a.初始化, git init
b.将新建的文件添加到暂存区 git add file
c.将添加到暂存区的文件提交到本地仓库 git commit -m ‘备注’
d.查看本次修改和上次提交的文件内容的差异  git diff  readme.txt
f.添加忽略文件.gitignore 放到根目录就行
e.强制将忽略的文件添加到暂存区 git add -f git.c  
7.对当前某个文件的修改不想提交到暂存区,可以使用 git checkout readme.txt 

2.移除数据

a.将暂存区的文件删除掉,但是本地工作目录还保留着该文件git rm —cached  file.txt
 b.将暂存区/本地仓库的文件删除掉。但是本地工作目录不保留该文件。git rm -f file.txt

3.移动数据

a.修改版本库中某个文件的名字 git mv readme.txt introduction.txt
b.a的步骤也可以这样 mv readme.txt introduction.txt , git rm read.txt
  1. 查看历史记录

    1. 查看历史记录。git log
      一行显示更舒服:git log --pretty=oneline

5.还原数据

a. 还原到某个版本 
还原到上一个版本 git reset —hard head^
还原到上上一个版本 git reset —hard head^^
还原到某个版本号的版本: git reset --hard 58104b3505211c7d3ed368072132564f8c85b439
b. 查看未来的某个版本:git reflog 
 回到未来的某个版本.  git reset --hard 9ecfd50

6.标签管理

a.创建标签 git tag v1, 可以使用-m 来添加备注
b.查看所有标签  git tag
c.查看某个标签的修改  git show v1
d.删除某个标签  git tag -d v1

7.分支管理
1.创建分支, 分支之间是平行的空间

a. 查看当前分支  git branch
b. 创建分支 git branch bOne, 然后切换到该分支 git checkout bOne
c. 创建分支并且切换到该分支。git checkout -b bOne
d.删除分支,此时不能在该分支内 git branch -d bOne

2.合并分支

a. 将本地的bOne合并到master,首先我必须切换到master,git checkout master, 然后使用 git merge bOne,  确认合并成功之后,删除bOne分支  git branch -d bOne

3.内容冲突,解决冲突

  冲突的产生原因:
  两个已经提交的分支的相同文件相同位置的的不同操作进行了合并.
  避免冲突的办法: 每次提交,先合并别的分支

  冲突出现的情况如图:

a.冲突的文件内容中 =======上面的是当前分支的代码,=======下面内容是其他分支的代码,针对性的处理一下,然后重新提交到本地即可解决冲突(去掉<<<<<, >>>>>, ========, 留下你想要留下的代码,然后git add ,git commit, 确认合并之后,删除掉没用的分支git branch -d bTwo


b.查看解决冲突后的master分支情况
git log --graph --pretty=oneline. 或者git log --graph --pretty=oneline --abbrev-commit

6.部署Git服务器

1. 创建远程仓库, 这个就是最好把远端仓库初始化成bare仓库的原因
a.创建空目录,一般以.git结尾 mkdir linuxprobe.git
b.修改所属者和所属组  chown -Rf git:git linuxprobe.git, 如果没有git用户就使用useradd git 新建
c. 切换到linuxprobe.git目录, git —bare init  。这个时候远程仓库已经创建好了。

2. 克隆远程仓库  git clone, 目前使用https和ssh协议来克隆。这里测试我们使用ssh协议。
a.在另一台服务器上,先生成公钥和私钥(ssh-keygen 

),将公钥上传到服务器上(ssh-copy-id 192.168.10.10
),

b.在另一台服务器上安装git, 通过git clone root@120.27.94.168:/root/testgit/linuxprobe.git. 将仓库拉下来
c 设置本地的git config信息
        git config --global user.name "Liu Chuan"
    git config --global user.email "root@linuxprobe.com"
        git config --global core.editor vim
d.提交一个信息并推向服务器
   git add readme.txt
   git commit  -m ‘readme’
   git push origin master. 推向到服务器上 搞定

7.Github托管服务

1.可以在github中https://github.com/yuwensong 部署你的git仓库,使用https或者ssh协议进行通信都可以
   2. 查看当前的所有远程仓库 git remote
3. 新建远程仓库
git remote add linuxprobe git@github.com:K130/linuxprobe.git
4. push到远程仓库
git push -u linuxprobe master.  推送当前master分支到代码到远程仓库linuxprobe 的master分支中

1:分布式版本控制系统对比传统版本控制系统有那些优势?

答案:去中心化设计让数据更加安全,管理文件数据更加的有效率。

2:将Git工作目录中的文件提交到暂存区的命令是?

答案:git add 

3:将Git暂存区的文件上传到版本仓库的命令是?

答案:git commit

4:Git是一种非常智能的程序,它能够为我们自动解决任何分支的内容冲突情况?

答案:错误,很多时候内容冲突后需要由人来解决合并冲突。

5:为什么我们要将ssh公钥上传到Github资料中?

答案:为了让Github能够验证用户身份,从而才能顺利的管理文件数据。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: