This website requires JavaScript.

Git使用技巧

编辑提交

配置

# 初始化仓库
git init

# 设置全局配置文件
git config --global user.name "Haseo Chen"
git config --global user.email "tpxcer@outlook.com"

# 显示配置信息
git config --list

# 查看当前状态
git status

从远程仓库获取代码

# SSH 密钥设置,如果使用ssh公钥的话,需要生成公钥然后把公钥内容复制到自己的gitlab系统中
ssh-keygen.exe -t rsa -C "tpxcer@outlook.com"
cat ~/.ssh/id_rsa.pub

# 如果你登录的ssh默认端口已经修改。则需要单独为gitlab系统设置端口,创建~/.ssh/config文件,权限为600输入以下内容

Host example.com
HostName example.com
Port 22

# 获取代码
git clone xxx@xxxxx/xx.git

# 从远程仓库拉取当前分支最新的代码(git pull相当于git fetch + git merge)
git pull origin branchname

提交代码

# 添加需要被提交的文件
git add "Java 8 - Beyond the Basics - Working Files"
git add *.htm

# 添加所有文件,包括子目录
git add .

#强制添加
git add -f file

# 放弃修改
git checkout .env

#文件在工作区的修改全部撤销
$ git checkout --file

#从版本库删除一个文件
git rm file

# 将文件移除需要被提交列表
git rm --cached <file>...

# 提交
git commit

# 直接添加注释信息
git commit -m "added a readme file"

# 直接添加所有修改了的文件进行提交,并且备注
git commit -a -m "updated css for common"

# 远程推送repo
git remote add origin https://github.com/bihell/Java-Base.git

# 把master push上去
git push -u origin master

提交后的修改

# 修改最后一次提交的提交人信息
git commit --amend --author "tpxcer<tpxcer@outlook.com>";

#Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当回退版本较早时可以写成HEAD~100。
#版本回退
git reset --hard HEAD^

#取消回退,commitId为你想要回到的未来版本号
git reset --hard commitId

分支处理合并

# 创建分支
git branch CodeVersions1

# 切换分支
git checkout CodeVersions1

# 现在你想切换分支,但是你还不想提交你正在进行中的工作;所以你储藏这些变更。为了往堆栈推送一个新的储藏,只要运行git stash。把所有未提交的修改(包括暂存的和非暂存的)都保存起来,用于后续恢复当前工作目录。

git stash

# 可以在创建分支的时候同时切换
git checkout -b bugFix

# 显示所有分支
git branch

# 合并分支,注意Master并没有什么改变,这里只是简单的把CodeVersions1新增或修改的东西合并过去。
git merge CodeVersions1

# 查看那些分支被合并了
git branch --merged

# 查看那些分支未被合并
git branch --no-merge

# 删除分支
git branch -d CodeVersions1

# 强制删除分区
git branch -D bugFix

其他

# 查看提交历史和命令历史
git log
git reflog

# 回退版本
git reset --hard +版本号

# 文件对比
git diff

# 如果文件staged了执行一下命令对比
git diff --staged

# 导出某次提交版本的文件
git archive commit_hash | gzip > package.tar.gz

# 好从某一版本到另一版本的补丁:
git diff from to | gzip > upgrade.patch.gz

# 命令应用补丁:
gzcat upgrade.patch.gz | patch -p1

参考

Git飞行规则(Flight Rules)

0条评论
avatar