安装
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 dev // 切换本地分支与远程分支对应 git checkout -b dev origin/dev
// 创建本地分支与远程分支的关联, 在拉取远程分支代码时,若不关联会失败
git branch --set-upstream dev origin/dev // 查看所有分支 git branch // 删除分支 git branch -d dev // 合并分支, 合并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