git 笔记
安装
Ubuntu
// 安装
sudo apt-get install git
// 配置用户名
git config --global user.name "Your Name"
// 配置email
git config --global user.email "email@example.com"
使用
创建仓库
// 切换到仓库目录下
git init
暂存, 将修改的文件添加到仓库(将文件提交到暂存区)
// 将对文件的修改添加到暂存区
git add test.txt
// 将删除文件的操作添加到暂存区
git rm test.txt
提交, 提交修改到仓库(将暂存区文件整体提交到分支)(相当于创建一个快照,便于回退)
git commit -m "本次提交信息"
推送, 将本地代码推送到远端
git push origin master
贮藏, (当需要切换分支, 但当前分支存在未完成的代码时, 可以先进行贮藏, 之后再恢复)
// 将文件贮藏
git stash
// 应用贮藏
git stash apply
// 删除贮藏
git stash drop
// 应用并删除贮藏
git stash pop
// 应用指定贮藏, 删除等操作同理
git stash apply stash@{0} // 可以通过list查看
// 查看贮藏列表
git stash list
查看当前仓库状态
git status
查看文件修改状态
// 查看文件修改状态
git diff test.txt
// 查看文件与 git库中最新版本的区别
git diff HEAD -- test.txt
查看版本日志
git log
// 显示简单信息
git log --pretty=oneline
// 将提交历史整理成一条直线
git rebase
版本回退(git中的版本回退并没有将版本删除, 只是将版本指针指向了指定的版本并更新工作区文件)
// HEAD表示当前分支当前版本 ^表示上一个版本,^^表示上两个版本
git reset --hard HEAD^
// 表示上5个版本
git reset --hard HEAD~5
// 回退到 commit id 为 d8b4dc开头的版本
git reset --hard d8b4dc
// 将文件从暂存区删除对其的修改,相当于撤销 文件的操作 操作, 仅仅更新暂存区状态
git reset HEAD test.txt
查看执行命令记录
// 查看执行过得命令, 以及版本commit id
git reflog
撤销修改
// 将文件修改撤销到 最近一次 add 或 commit 时的状态, 用版本库中的版本,替换工作区的版本
git checkout -- test.txt
分支
// 创建并切换分支
git checkout -b dev
// 创建分支
git branch dev
// 创建一个没有任何提交的新分支
git checkout ---orphan dev
// 切换分支
git checkout dev
// 切换本地分支与远程分支对应
git checkout -b dev origin/dev
// 创建本地分支与远程分支的关联, 在拉取远程分支代码时,若不关联会失败
git branch --set-upstream dev origin/dev
// 查看所有分支
git branch
// 删除分支
git branch -d dev
// 重命名当前分支
git branch -m dev2
// 合并分支, 合并dev分支到当前分支
git merge dev
// 将某次提交合并到当前分支
git cherry-pick commit_id
标签(标签是版本库的一个快照, 其实就相当于给一个commit起个别名, 跟某次commit绑在一起)
// 创建标签, 跟当前分支的最新一次提交绑在一起
git tag tagName
// 将标签与指定的commit绑定
git tag tagName commitId
// 创建带有说明文字的标签
git tag -a tagName -m "message"
// 删除标签
git tag -d tagName
// 查看所有标签
git tag
// 查看所有标签信息
git show
// 查看指定标签信息
git show tagName
git链接 GitHub
/*
1. 创建ssh秘钥
会在 用户主目录下.ssh 目录下创建 id_rsa(私钥) id_ras.pub(公钥) 两个文件
2. 将创建的 公钥添加到GitHub上
*/
ssh-keygen -t rsa -C "邮箱地址" // Windows下使用 Git Bash
/*
将本地代码推送到远程
*/
// 关联远程仓库
git remote add origin git@github.com:hujingnb/gitTest.git
// 首次将修改推送到远程仓库, -f 舍弃线上文件,强制推送
git push -u origin master
// 之后再次推送
git push origin master
// 将远程代码拉到本地
git pull origin master
/*
将远程代码拉到本地
*/
// 下载代码
git clone git@github.com:hujingnb/gitTest.git