git学习笔记

git学习笔记
== >1,版本库的创建和修改

初始化一个版本库使用git init命令,添加文件到版本库使用两个命令:

  1. git add <file> 可以反复多次使用,添加多个文件;
  2. git commit -m <message> ,完成;

2,版本回退

修改提交的版本可以使用git log查看提交历史,已确定要回到哪个版本;git reflog查看命令历史,确定回到未来哪个版本;git log --graph可以查看分支合并情况。

  1. git checkout -- <file> 为丢弃工作区的修改;
  2. git reset HEAD <file> 为丢弃缓存区的修改;
  3. git reset --hard commit_id 修改HEAD指针指向的版本;

3,连接github

  1. git remote add origin git@server-name:path/repo-name.git关联远程版本库;
  2. git push -u origin master 第一次推送master分支的所有内容,以后提交则不需要 -u参数了;
  3. 当远程版本库已经存在时先使用git remote -v查看已有的远程版本库,然后使用git remote rm <origin-name>;当远程代码版本高于本地版本时push会报错,此时git push <remote-name> master -f可以强行使用本地版本覆盖远程版本。

由于git连接使用ssh,所有会验证公钥信息,如果提交是报权限验证失败则需要把本机公钥提交到服务器(github),下面讲解如果创建公钥。

  1. ssh-keygen -t rsa -b 4096 -C "you_email@example.com"创建 密钥/公钥对,接下来直接数据三个回车即可,此时会在/c/Users/you/.ssh/目录下看到id_rsa id_rsa.pub两个文件。需要把id_rsa.pub上传到git服务器。github公钥存放地址为 个人中心->setings->SSH and GPG keys。

4,分支管理

  1. 查看分支 git branch
  2. 创建分支 git branch <branch name>
  3. 切换分支 git checkout <branch name>
  4. 创建+切换分支git checkout -b <branch name>
  5. 合并某分支到当前分支 git merge <branch name>
  6. 删除分支 git branch -d <branch name>

5,缓存工作区

  1. 保存当前工作区 git stash。当保存工作区后可以确认在哪个分支上修改bug,然后切换分支,创建修改bug临时分支进行修改工作。例如:git checkout master; git checkout -b bug-101
  2. 查看工作区的保存记录git stash list
  3. 回复工作区git stash apply,回复后stash不会删除,git stash drop来删除工作区保存记录;git stash pop回复工作区同时删除保存记录。

6,多人协作

  1. 多人协作提交逻辑,首先试图提交使用git push origin <branch-name>推送自己的修改;
  2. 如果推送失败,则因为远程分支比本地版本跟高,需要拉取线上代码git pull进行代码合并。
  3. 如果合并有冲突,则解决冲突,并在本地提交。
  4. 没有冲突或者解决掉冲突后,再用git push origin <branch-name>推送就能成功!如果git pull提示no tracking information,则说明本地分支和远程分支的连接关系没有创建,用命令git branch --set-upstream-to <branch-name> origin/<branch-name>。这就是多人协作的工作模式,一旦熟悉了就非常简单。

【注意】

  1. 查看远程信息,使用git remote -v;
  2. 本地新建的分支如果不推送到远程,对其他人就是不可见;
  3. 从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;
  4. 在本地创建和远程分支对应的分支使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致。
  5. 建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;
  6. 从远程抓取分支,使用git pull , 如果有冲突,要先处理冲突;

7,设置别名

设置别名git config --global alias.st status,之后使用 git st即可查看git状态。

8,搭建git服务器(ubuntu下)

  1. 安装git:sudo apt-get install git
  2. 创建一个git用户,用来运行git服务:sudo adduser git
  3. 创建证书登录,收集所有需要登录的用户的公钥,就是id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,银行一个。
  4. 初始化git仓库,先选定一个目录作为git仓库,假定是/srv/sample.git,在/srv目录下输入命令sudo git init --bare sample.git,git就会创建一个裸仓库,仓库没有工作区,因为git服务器纯粹就是为了共享,所以不让用户直接登录服务器上去该工作区,并且服务器上的Git仓库都已.git结尾,把owner改为git:sudo chown -R git:git sample.git
  5. 禁用Shell登录:把git:x:1001:1001:,,,:/home/git:/bin/bash修改为git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell这只是把版本库建立起来了,权限和其他复杂应用请自己查找资料学些。
posted @ 2018-08-12 23:36  旺007  阅读(90)  评论(0编辑  收藏  举报