git安装
# 需要root权限
# 卸载old版本
yum remove git
# 安装一些依赖
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
# 下载新版本Git压缩包,下载的版本可指定
wget --no-check-certificate https://www.kernel.org/pub/software/scm/git/git-2.37.7.tar.gz
# 解压Git压缩包
tar xzf git-2.37.7.tar.gz && cd git-2.37.7
# 编译
make prefix=/usr/local/git all
make prefix=/usr/local/git install
# 添加环境变量
echo "export PATH=$PATH:/usr/local/git/bin" >> ~/.bashrc # 或者 ~/.zshrc
source ~/.bashrc # 或者 ~/.zshrc
提交code
# 拉取最新代码
git pull
git pull --rebase
git pull origin xxx_branch # 从远程仓库(origin)拉取(fetch)并合并(merge)指定分支(xxx_branch)的最新更改到你的当前工作分支
# 第一次代码提交
git add .
git commit -m "icafe编号 提交注释xxx" # 字符串由两部分组成:icafe编号从icafe里面复制,xxx为提交注释
git push origin HEAD:refs/for/master # HEAD表示本地分支名,比如也可以为分支:glm_ner
# 修改检查错误后再次提交
git add .
git commit --amend --no-edit
git push origin HEAD:refs/for/master
# 回到之前版本(注意:代码先备份!)
git reset --hard origin/master
git reset
-
3种模式
-
--soft
:将HEAD引用指向给定提交,索引(暂存区)和工作目录的内容不变 -
--mixed
(默认,可不写):将HEAD引用指向给定提交,索引(暂存区)的内容改变,工作目录的内容不变。这个命令会将索引(暂存区)变成你刚刚暂存该提交全部变化时的状态,会显示工作目录中有什么修改 -
--hard
:将HEAD引用指向给定提交,索引(暂存区)和工作目录的内容都会变成给定提交时的状态。也就是在给定提交后所修改的内容都会丢失(新文件会被删除,不在工作目录中的文件恢复,未清除回收站的前提)模式 / 影响 HEAD 索引(暂存区) 工作目录 –soft 是 否 否 –mixed 是 是 否 –hard 是 是 是
-
-
回滚版本的写法
- 当前版本:
HEAD
- 上1个版本:
HEAD^
、HEAD~1
- 上2个版本:
HEAD^^
、HEAD~2
- 通过change-id来指定版本:
7bae2d0c3e9f59173703ded70f4f39fe96143139
- 当前版本:
-
示例
git reset --soft HEAD^
git reset --soft 7bae2d0c3e9f59173703ded70f4f39fe96143139
git stash
- 暂存工作区
常用命令
# 查看目前的文件状态,暂存区
git status
# 查看历史
git log
git relog
# 版本回滚
git reset --hard HEAD^ # 回滚到上1个版本
git reset --hard HEAD^^ # 回滚到上2个版本
git reset --hard HEAD~10 # 回滚到上10个版本?