Git 笔记

安装git

Linux/Mac OS/Windows

示意图

0.jpeg

0.jpeg
0.jpeg

自报家门

  • git config --global user.name "Your Name"

  • git config --global user.email "[email protected]"
    注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

  • mkdir learngit 新建一个文件

  • cd learngit 变道这个文件

  • pwd 命令用于显示当前目录

  • 初始化仓库
    git init命令把这个目录变成Git可以管理的仓库,当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的

  • ls -ah 可以看见 .git 隐藏文件git

文件操作


添加文件到Git仓库分两步:
  • git add 添加文件到仓库

  • git commit -m提交文件到仓库,后面 -m“” 是本次提交说明

  • git status 查看仓库当前状态

  • git diff readme.txt 查看deifference,修改的那些内容

管理修改
  • git log 查看历史记录
  • git log --pretty=oneline
  • git reflog 查看命令历史,以便确定要回到未来的哪个版本
  • HEAD 表示当前版本
  • git reset --hard HEAD^ 回退到上一个版本(要找回上一个版本怎么办,在命令行窗口找回,commotion id ,git reset --hard 。。。。)
撤销修改
  • git checkout -- 丢弃工作区的修改

  • git reset HEAD 可以把暂存区的修改撤销掉(unstage),重新放回工作区

  • git diff HEAD -- readme.txt 查看区别

  • git checkout -- readme.txt 让文件回到最近一次 git commit 或 git add 的状态

  • rm 删除文件,git rm 删除版本库文件

  • 确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit

远程仓库(关联GIthub服务器)


  • git remote add origin [email protected]:ZhangFZ074/learng.git 关联Github库
  • git push -u origin mastter 把本地 master 分支推送到 Github(下一次不用输入 -u)
  • git clone git://github.com/ZhangFZ072/gitskills.git 克隆Github远程库到本地
  • git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快

分支管理


创建与合并分支

  • 查看分支:git branch
  • 创建分支:git branch
  • 切换分支:git checkout
  • 创建+切换分支:git checkout -b
  • 合并某分支到当前分支:git merge
  • 删除分支:git branch -d
  • 用git log --graph命令可以看到分支合并图
  • 合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。
修复bug

*修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;
当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场。

多人协作

多人协作的工作模式通常是这样:
1.首先,可以试图用git push origin 推送自己的修改;
2.如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
3.如果合并有冲突,则解决冲突,并在本地提交;
4.没有冲突或者解决掉冲突后,再用git push origin 推送就能成功!
如果git pull提示no tracking information,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to origin/
这就是多人协作的工作模式,一旦熟悉了,就非常简单。

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

标签管理

建立标签
  • git tag 用于新建一个标签,默认为HEAD,也可以指定一个commit id;
  • git tag -a -m "blablabla..."可以指定标签信息;
  • git tag可以查看所有标签。
操作标签

命令git push origin 可以推送一个本地标签;
命令git push origin --tags可以推送全部未推送过的本地标签;
命令git tag -d 可以删除一个本地标签;
命令git push origin :refs/tags/可以删除一个远程标签。

自定义git

你可能感兴趣的:(Git 笔记)