git版本控制管理工具学习记录

在公司用git管理代码一段时间了,记录一下学习过程。

版本回退

  • HEAD 指向的版本是当前版本,git允许我们在各历史版本中来回切换,使用命令:git reset –hard commit_id

  • 命令git log 查看提交日志

  • 命令git reflog查看命令历史日志,这样可以查看你所有的命令操作日志

工作区与暂存区

  • git中有工作区(working place)与暂存区的概念,在工作区中完成工作后,
    使用命令git add 把在工作区完成的文件提交到“暂存区”,然后使用命令git commit 把暂存区的所有
    内容提交到当前分支。注意:git commit 只负责把暂存区的修改提交,所有修改过的内容一定要经过git add提交到攒出区,
    然后再经过git commit 才能被提交。

  • git status 可以查看工作区和暂存区内容的状态

  • git checkout – file 把file文件在工作区的修改全部撤销,就是让这个文件回到最后一次git commit 或者 git add时的状态

  • git rm 用于删除文件,如果文件已经被提交到文件库,那么你永远也不用担心误删

远程仓库

  • 创建ssh key 使用命令ssh-keygen -t rsa -C “youremail@example.com“ ,这时会在目录下面生成.ssh目录,,里面
    有id_rsa和id_rsa.pub两个文件,id_rsa是私钥,id_rsa.pub是公钥
  • 登录github,打开SSH and GPG keys,点击new SSH key ,填上title,在key文本框中粘贴id_rsa.pub文件的内容。
  • 添加远程库,在github创建库后,这个库还是空的,要在本地库下运行命令: git remote add origin git@github.com:whd88188/learngit.git(learngit是库名)
    下一步就可以把本地库的内容推送到远程库了,使用命令:git push -u origin master(第一次推送),之后的话用 git push origin master

分支管理

  • git branch 查看分支

  • git branch branch_name 创建分支

  • git checkout branch_name 切换分支

  • git checkout -b branch_name 创建并切换分支

  • git merge branch_name 合并某分支到当前分支

  • git branch -d branch_name 删除分支

  • git log –graph 可以看到分支合并图,git无法合并分支时,要先解决,然后提交载合并,用,如图:

  • 多人合作:

master 分支是主分支,因此要时刻与远程同步;

dev 分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;

bug 分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug;

feature 分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发。

标签管理

  • 先切换到需要打标签的分支

  • git tag tag_name 创建一个标签 git tag -a tag_name -m “blablabla…” 可以指定标签信息


  • git tag 查看所有标签


学习教程:廖雪峰老师的git教程