# 一、提交
git status // 查看状态
git add <filename> // 将文件添加至暂存区
git commit -m '提交信息' // 提交修改,message为提交信息
git commit --amend --no-edit // 提交信息不被修改,任为上一次提交信息
git stash // 备份当前的工作区的内容,保存到Git栈中。
git stash pop // 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。
git stash list // 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
git stash clear // 清空Git栈。此时使用git等图形化工具会发现,原来stash的哪些节点都消失了。
# 二、版本控制
git reset --hard HEAD^ // 回退一步
git reset --hard HEAD~3/HEAD^^^ // 回退三步
git reset --hard 4200r5 // 将版本回退至4200r5
# 三、比较差异
git diff // 比较工作区和暂存区的 所有文件 差异
git diff <filename> // 比较工作区和暂存区 指定文件 的差异
# 四、分支操作
git branch // 查看分支
git branch -r // 列出远程分支
git branch -a // 列出本地分支和远程分支
git branch -d dev // 删除分支(本地分支)
git branch dev // 新建dev分支,并停留在当前分支
git remote show origin // 查看当前git仓库地址
git checkout dev // 切换dev分支
git merge dev // 将dev分支和当前分支合并
git checkout -b test // 新建test分支并切换
git checkout -b dev origin/dev // 克隆远程分支dev,并切换到dev
git branch --set-upstream-to=origin/remote_branch your_branch // 本地分支关联远程分支
git remote update origin --prune // 更新远程分支的本地列表
git branch -m [branchName] [newBranchName] // 分支重命名
# 五、提交、远程等操作
git clone 'http:xx' // 克隆远程分支
git push origin dev // 推送到远程dev分支
git branch -d <branch-name> // 删除本地分支
git push origin:dev // 删除远程分支
git remote add origin 'http:xx' // 远程添加
git push -u origin master // 将本地项目推送到master分支(第一次)
git push // 将本地项目推送master分支
git pull origin master // 从远程分支master上下载
git checkout -- // 版本回撤
git rm -f filename // 删除文件
git rm --cached <filename> // 移除暂存区的修改
git remote add <远程仓库名> git@github.com:<账号>/<本地仓库名>.git // 本地仓库关联远程仓库
git commit --amend // 修改最近一次的commit
git reset --soft HEAD^ // 撤销commit提交
//--------------------------------------------------------//
HEAD^ 表示上一个版本,即上一次的commit,也可以写成HEAD~1
如果进行两次的commit,想要都撤回,可以使用HEAD~2
–soft
不删除工作空间的改动代码 ,撤销commit,不撤销git add file
–hard
删除工作空间的改动代码,撤销commit且撤销add
//--------------------------------------------------------//
# 六、标签
git tag // 列出所有标签
git tag -l [标签名] // 可根据标签名筛选
git checkout -b [分支名] [标签名] // 检出标签
git tag [标签名] // 新建一个tag
git tag [标签名] [commit] // 新建一个tag在指定commit,如: git tag v1.0.0 87h9jmo
git tag -a [标签名] -m [标签说明] // 新建一个带说明的tag
git tag -a [标签名] [commitId] -m [标签说明] // 新建一个带版本的说明tag
git tag -d [标签名] // 删除本地tag
git push origin :refs/tags/[tagName] //删除远程tag
git push origin --delete [标签名] // 删除远程tag
git push [remote] [标签名] // 提交指定tag
# 七、日志
git log // 查看历史提交。 空格向下翻;b向上翻;q退出
git log --pretty=oneline // 一行显示,包含哈希索引值
git log --oneline // 简洁的一行显示
git reflog // 简洁一行显示,并显示移动到某个历史版本所需步数
1、git忽略某个指定的文件(不从版本库中删除)
git update-index --assume-unchanged config.conf
2、git取消忽略某个指定的文件
git update-index --no-assume-unchanged config.conf
# 更改仓库URL地址
// 更改Git仓库URL地址
1、找到项目所在目录,找到 .git 文件夹里面的 config 文件,直接修改 【remote="origin"】中的url地址
2、使用 git 命令修改:git remote set-url origin URL (更新远程仓库地址,URL为新地址)
3、先删除现有地址,在添加
git remote rm origin
git remote add origin url
# merge忽略某个文件或者目录
# --assume-unchanged
选项可以用于告诉Git忽略指定文件的变更,命令将文件标记为“假设不变”
git update-index --assume-unchanged dirOrFile
上面这个命令会忽略dirOrFile目录或文件,在你想要切换分支或者reset时不会受到影响。
如果你想取消这个设置,可以使用:
git update-index --no-assume-unchanged dirOrFile
# .gitattributes文件
.gitattributes文件是Git中用于指定特定文件的属性的配置文件。您可以在.gitattributes文件中指定文件的合并策略、排除策略等
// 将名为`config.ini`的文件标记为不进行合并
config.ini merge=ours
// 将名为`data.txt`的文件标记为需要进行合并
data.txt merge=union