git学习记录

111 阅读3分钟

git是分布式版本控制系统,源代码管理工具

集中式版本控制(svn cvs)

集中存放在中央服务器上。所有的开发人员都必须依赖于这个代码仓库(必须联网)

分布式版本控制(git)

没有“中央服务器”,每个人都可以创建一个独立的代码仓库用于管理,各种版本控制的操作都可以在本地完成。每个人修改的代码都可以推送合并到另外一个代码仓库中。(本地不依赖网)

1.安装Git

在官网下载安装 Git

在命令行输入 git --version 可以查看版本

2.初始化Git目录

git init

image.png

在目录下会出现一个.git隐藏目录,这个目录是git用来跟踪管理版本库的,不要随意修改。

3.查看状态

git status

4.添加文件到暂存区

我现在要把index.html第一次提交到暂存区 使用$ git add index.html

将全部的文件暂存 $ git add .或者$ git add --all

可以添加一个本地git忽略清单

项目根目录创建一个'.gitignore'命名的文件,在里面可以直接写忽略的文件夹或者忽略的文件路径

5.提交

添加文件到版本库当前分支 $ git commit -m xxxxx

6.工作区和暂存区的关系

工作区:不包括.git隐藏文件夹的区域以外的区域

暂存区:git的版本库里存了很多东西,最重要的就是stage的暂存区,还有git为我们自动创建的第一个分支master,以及指向master的一个指针HEAD

7.查看提交历史

$ git log

其中commit xxxxxxxxxxxxxxxxx是commit id

8.版本回退

$ git reset --hard xxxxxxxxx

9.查看文件差异

$ git diff

10.撤销修改

$ git checkout -- index.html

11.删除文件

1.误删 $ git checkout -- index.html

2.删除文件 $ git rm index.html

12.远程连接

查看ssh密钥

$ ls -al ~/.ssh

image.png

看看有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可以直接将id_rsa.pub文件里的内容复制

如果没有 需要创建SSH Key

$ ssh-keygen -t rsa -C "youremail@example.com"

一路回车设置默认值即可

在用户主目录里找到.ssh目录,id_rsa是私钥,id_rsa.pub公钥

在git服务器上面绑定公钥

登录GitHub,打开“Account settings”,"SSH Keys"页面

点“Add SSH Key”,填上任意Title,在 Key文本框里粘贴id_rsa.pub文件的内容,点击“Add Key”

13.仓库远程同步

$ git remote add origin 你的仓库ssh地址将远程库和自己的本地库连接

$git remote add origin git@github.com:Jacqueline0905/koa.git

连接成功后查看远程仓库地址git remote -v

image.png

14.推送本地分支到github分支上

git push -u origin master(-u是使用流形式 速度更快)

如果git远程库已经存在内容,新关联的本地库第一次提交代码是不被允许的,可以用git push origin master -f强推,覆盖

15.克隆

git clone 仓库地址

16.分支

查看本地分支git branch

查看所有分支git branch -a

创建分支git branch 分支名

切换分支git checkout 分支名

创建并切换一步到位git checkout -b 分支名

合并分支git merge 分支名

删除分支git branch -d 分支名

删除远程库分支git push origin --delete 分支名

17.多人协作

首先,在本地和远程创建分支git checkout -b 分支名 origin/分支名

然后,建立本地分支和远程分支的关联git branch --set-upstream 分支名 origin/分支名

其次,推送自己的修改git push origin 分支名,如果推送失败,先git pull合并,如果合并有冲突,先解决冲突,再git push origin 分支名推送

18.标签

创建标签git tag 标签名/git tag 标签名 版本号

查看标签git tag

查看具体的某一个标签git show

添加标签信息git tag -a 标签名 -m '描述信息'

删除标签git tag -d 标签名

删除远程库标签git push origin :refs/tags/标签名

远程推送标签git push origin 标签名

一次性推送全部标签git push origin --tags