关于git命令的笔记
一 、git的导入
-
git的初始化
- 初始化姓名和邮箱(会在~/.gitconfig 下设置)
git config --global user.name "firstname lastname"
git config --global user.email "[email protected]"
- 为了更好的显示命令 添加一条命令
git config --global color.ui auto
- 初始化姓名和邮箱(会在~/.gitconfig 下设置)
-
使用前的准备
- 设置ssh登陆
- 设置ssh key
ssh-****** -t rsa -C "[email protected]"
- 命令成功后会在~/.ssh/ 下生成id_rsa和id_rsa.pub,后者为公钥,前者为私钥
- 将公钥添加到github内
- 测试ssh登陆github
ssh -T [email protected]
- 设置ssh key
- 设置ssh登陆
-
基本操作
- 初始化仓库
mkdir DSA_Learn
cd DSA_Learn
git init
- 成功后会在当前目录生成 .git
- 查看当前状态
git status
-
git add 向暂存区内添加文件
-
git commit 保存仓库的历史记录
git commit -m "first commit"//-m只记录简介信息
-
git log 查看提交的日志
- git diff 查看更改前后的差别
- 初始化仓库
-
分支操作
- 显示分支一览表
git branch "分支名" 创建分支,例如 git branch zhuhu 其中zhuhu就是分支名
- 创建和切换分支(创建feature-A 并切换的分支下面)
git checkout -b feature-A
- 切换回上一次的分支
git checkout “分支名” 例如 git checkout zhuhu q切换到zhuhu这个分支里面去
git checkout master 切换到主线中
- 合并分支
- 首先切回master分支
git merge --no-ff feature-A git merge “分支名” 就是将该分支合并到主线中
- 以图表方式查看分支
git log --graph
- 显示分支一览表
- 更改提交的操作
- 回溯历史版本(提供hash值即可回溯到版本)
git reset --hard hash
- 查看当前状态的log和查看当前仓库的log
git log
git reflog //当前仓库的log
- 若完成此操作
- 创建feature-A分支并合并
- 回溯到创建合并前的master状态
- 创建fix-B
- 修改fix-B
- 回溯到feature-A合并的状态
- 合并fix-B(可能需要解决冲突)
- 回溯历史版本(提供hash值即可回溯到版本)
-
修改提交信息
-
git commit --amend
修改上一条提交信息
-
-
推送到远程仓库
- 为本地仓库设置远程仓库(origin为远程仓库的标识符)
git remote add origin [email protected]:skywak3r/DSA_Learn
- 将本地仓库推送的远程仓库
-
git push -u origin master
// - 会将当前分支推送到远程仓库origin的master下;-u命令是将origin 分支设置为master的upstream(上游),之后从远程获取信息的话,直接从origin的master分支获取内容
- 推送master以外的分支
git push -u origin feature-D
-
- 为本地仓库设置远程仓库(origin为远程仓库的标识符)
-
从远程仓库获取
git clone [email protected]:skywak3r/DSA_Learn
-
git branch -a
获取所有的分支信息 - 获取远程仓库的feature-D分支
git chekcout -b feature-D origin/feature-D
- 修改D中的内容
- 将feature-D推送到远端
git commit -am "add feature-D"
git push
- 获取最新的远程仓库的feature-D的内容
-
git pull origin feature-D
将本地的feature-D更新到最新状态
-
-
pull requset的使用
- pull request是自己修改完代码之后,请求仓库采取的一种行为。
- pull之后要在ISSUE中详细描述出修改
- pull的具体步骤
- 将远程仓库的fork到自己远程仓库
- 将远程仓库clone到自己仓库
- 创建特性分支
- 在特性分支下修改代码
- git push 到自己的远程仓库
- 登陆githun 点击create pull填写issue后提交。
- git pull 更有效的方法
- 提早发送pull,即使尚未完成,只需要简单写出思路,会有人提出意见。
- 在提交的pull前缀【WIP】(work in process)
- pull request是自己修改完代码之后,请求仓库采取的一种行为。
-
仓库的维护
- fork到自己的远程仓库之后,很可能与最新的代码失节。
- 为远程仓库设置upstream
git remote add upstream [email protected]:skywak3r/DSA_Learn
- 更新仓库
git fetch upstream
- 为远程仓库设置upstream
- fork到自己的远程仓库之后,很可能与最新的代码失节。
-
接受pull request
- 当收到pull request后
- 你需要clone他的最新代码
git remote add "pull request发送者" [email protected]:pullrequet发送者/代码
git fetch 发送者
- 创建一个新的分支并合并
git checkout -b feature
git merge work
- 检测代码 若成功
- 删除合并的分支
git branch -D feature
git push