git入门知识概要

Git基本知识

win环境下请在git bash中运行git命令。

图形界面下的create,issue,fork,pull requests不再涉及。

git操作的动画演示。访问 http://onlywei.github.io/explain-git-with-d3/。

git工作区域

git工作区域示意图

如上图,不做过多补充。

ssh登录与多账号

生成ssh

ssh-keygen -t rsa -C "注册 gitlab 账户的邮箱"
ssh-keygen -t rsa -C "注册 github 账户的邮箱"

git设置ssh

.pub文件可以用notepad++打开,把里面的内容复制出来黏贴到github设置中的ssh keys中。

SSH KEY

本地编写Config

# github
   Host github.com
   HostName github.com
   PreferredAuthentications publickey
   IdentityFile ~/.ssh/github_id_rsa

创建本地仓库

git init
git config --global user.name "注册GitHub的用户名"
git config --global user.email "注册GitHub的邮箱"

ssh clone

git clone [email protected]:project/repo.git

git基本操作

部分基本操作

git status

查快git工作区状态

git add 文件

将代码放入缓存区

注意: .gitignore文件

git add .

git log

查看提交日志信息

点击 pgUp 和 pgDn 来进行日志的上一页和下一页的切换。点击 q 退出 log 查询(Windows 系统下的操作)。

git log --oneline -数字
git log --stat
git log -p

git reset --hard 日志id

使文件与本地仓库一致。

主要是用于代码回退 git reset --hard,仅对已经 commit 到本地的代码有效。

回退后悔药:git reflog 命令查看之前版本 id 信息。

  1. reset --soft 不进行暂存区和工作区的覆盖,仅将本地仓库回退;
  2. reset --mixed 覆盖暂存区,不覆盖工作区;
  3. reset --hard 暂存区,工作区全部用指定提交版本的目录树替换掉。

git checkout -- 文件

使文件与暂存区代码文件一致。对未提交到缓存区的代码进行撤销。

git reset HEAD -- 文件

将放入暂存区的文件退回到工作区中。

git分支实用知识

git branch

查看当前分支,master为默认分支。

git branch 分支名称

创建分支

git checkout 分支名称

分支切换

git checkout -b 分支名称
创建并切换

git push origin 分支名称

提交分支下的内容到远程仓库。

git pull origin 分支名称

拉取远程仓库分支的内容。

git merge 分支名称

合并从分支到当前主分支

git rebase 分支名称

合并主分支到当前从分支

git merge 和 git rebase 的区别

git操作的动画演示。访问 http://onlywei.github.io/explain-git-with-d3/。

结合动画理解:

  • git merge 会生成新的 commit,而 git rebase 不会生成新的 commit,会保留比较完整的提交历史。
  • git merge 是按照时间顺序进行合并,而 git rebase 是将 主分支顺序不变,插入到从分支的前端。

git merge 和 git rebase 的使用场景

  • git merge 一般用于新功能的开发和 bug 修复;
  • git rebase 在主分支上进行开发,或者 Pull 的冲突解决;
  • git merge 主要是在主分支上进行使用,而 git rebase 是在从分支上进行使用。

git cherry-pick 日志id

获取某一个分支的单笔提交,并作为一个新的提交引入到你当前分支上。

git用户配置

git config

git config -l 该命令是查看 Git 配置信息的命令。

git config user.name  "提交者的名称"

配置当前仓库下提交者的名称。

git config user.email "邮箱"

配置当前仓库下提交者的邮箱。

git config --global user.name "用户名"

配置全局提交者的名称。

git config --global user.email "邮箱"

配置全局提交者的邮箱。

需要注意的是,这里配置的邮箱一定是我们已经注册 GitHub 的邮箱,并且是有该项目仓库提交权限的帐号。

你可能感兴趣的:(git入门知识概要)