赞
踩
查看和退出,按向下箭头往下看内容,在英文状态下按q结束查看
git log filename
git log --pretty=oneline 文件名
git log -p 文件名
git log --author="某用户名"
git commit -a -m "提交信息"
git commit --amend // 进入vim编辑页面,按insert或i进入编辑,修改完按Esc再输入:wq保存
git branch -m old_branch new_branch
old_branch和new_branch 分别代表 旧分支名称、新分支名称
先修改本地分支名称,再推送修改后的分支到远程,最后删除远程旧分支(温馨提示:默认分支git 拒绝删除)
git branch -m old_branch new_branch//第1步:修改本地分支
git push --set-upstream origin new_branch//第2步:推送修改后的分支
git push origin :old_branch //第3步:删除远程的旧分支
步骤图如下:
参考:Git进阶(六):git 刷新分支、修改本地和远程分支名称
将branch_name分支合并到当前分支
git merge branch_name
将远程某个分支合并到当前分支
git pull origin branch_name
例如:
git checkout new-feature // 切换到当前new-feature功能分支
git pull origin develop // 合并develop分支代码到本地的new-feature分支代码
不切换分支将远程最新代码更新到某个分支
// 例如在某个功能分支,将本地的develop分支的代码跟远程develop分支对齐
git fetch origin develop:develop
// 然后在某个功能分支合并develop分支的代码就很方便了
git merge develop
git branch // 本地分支,分支前有*的代表当前分支
git branch -a //查看所有分支列表,包括远程分支
git branch --show-current //查看当前代码所在分支
git checkout develop
如果第一次clone下来的是master分支,可以通过切换到develop分支,会把远程的develop分支也拉取下来
(1) 从当前分支新建并切换到该新分支:
git checkout -b new_branch_name
new_branch_name 为新创建的自己命名的分支名
(2) 将某个commit号建立一个分支
git checkout -b new_branch_name 115ffb92f2bf44de4b899faaf6c9f48eac42a641
-b参数会切换到该新分支,new_branch_name 为新创建的自己命名的分支名
git push origin remote_branch
remote_branch远程分支名称
首次推送:
git push --set-upstream origin remote_branch
git branch -d [deleteBranchName]
[deleteBranchName] 代表要删除的分支名
有时发现敲这个命令并未马上删除,提示说要删除的分支没有被合并,如果你确定你的代码备份了,删除没用的分支就按照提示敲:
git branch -D [deleteBranchName]
删除远程分支:
git push origin --delete [deleteBranchName]
参考: Git 分支 - 远程分支
比如把develop分支拉取下来
git clone -b develop clone_url
clone_url 是远程克隆路径,拉取后,进入文件夹,输入git branch -a来看分支列表,不要 -a 时是本地的分支,参考:git clone 指定分支 拉代码
git cherry-pick [commitHash]
有个小坑,如果cherry-pick同事的代码,下次commit时发现author竟然是同事,得修复一下
(注: amend命令只会修改最后一次commit的信息)
$ git commit --amend --reset-author
git restore 路径/文件名
git checkout .
清理未跟踪的文件
先演习:
git clean -d -n // 演习查看将要删除的文件,但不删除
使用git clean 清理未跟踪文件时,建议先git stash push "message" -u
将所有改动包括未跟踪文件先贮藏一下,git stash apply拿回刚贮藏的改动后再清理,否找很难找回刚清理的文件
git clean -f // 删除已跟踪文件夹下的未跟踪文件,但不删除未跟踪文件夹下的文件
git clean -df // 删除所有未跟踪的文件和文件夹
git reset HEAD <file> // 将某个文件从暂存区放回工作区
git reset HEAD . //将所有暂存区文件都放回工作区
reset命令很危险,小心使用
git diff //查看暂存区与工作区的区别,diff后面接某个文件则是查看某个文件的对比变化
git diff HEAD //查看工作区和暂存区两个与本地仓库的区别
git diff --cached //查看本地仓库与暂存区的区别
git reset (--mixed) HEAD~1
reset的默认方式,--mixed可不写,参数前有2个-
可回退一个版本,且会将暂存区的内容和本地已提交的内容全部恢复到【未暂存】的状态,不影响原来本地文件(未提交的也
不受影响)
git reset --soft HEAD~1 或 git reset --soft HEAD^
回退一个版本,不清空暂存区,将已提交的内容恢复到【暂存区】,不影响原来本地的文件(未提交的也不受影响)
git reset --hard HEAD~1
回退一个版本,清空暂存区,将已提交的内容的版本恢复到本地,本地的文件也将被恢复的版本替换
更多:撤销远程提交
拉取远程代码合并到本地
git pull
git remote add origin git@github.com:xxx/xxx.git //先跟远程服务器建立关联
git push --set-upstream origin 某分支名
git remote set-url origin https://xxx.xxx/xxx/xxx
如果是gitlab通过access token的方式,则最后的url的格式为 https://oauth2:xxxxx@xxx.xxx/xxx/xxx,@前面是token值,@后面则是仓库地址路径
git stash
git stash push -m "message" //贮藏时备注信息
git stash push -m "message" -u //加参数-u存未跟踪的文件
旧的:
git stash save "message" //2017 年 10 月下旬,Git 邮件列表上进行了广泛讨论,该讨论中弃用了 git stash save 命令, 代之以现有 git stash push 命令
git stash save "message" -u //加参数-u存未跟踪的文件
参见 : Git 工具 - 贮藏与清理
git stash show -p //查看最近一次的stash记录
git stash show -p stash@{***} //查看某一次stash的记录
git stash list //查看所有贮藏区列表
git stash list --date=local
git stash list --date=relative
git stash list --date=short
git stash apply //将最近一次存起来的stash应用在工作区
git stash apply stash@{***} 或 git stash apply 'stash@{***}' // 将某个stash应用到工作区
git stash pop // 应用最后一次stash到工作区,并把它从列表中移除
git stash drop stash@{***} // 清除某一次stash贮藏
git stash clear //清除stash列表,这个需要谨慎
git config --global alias.pg 'push origin HEAD:refs/for/develop'
通过设置别名使得推送到gerrit的长命令变得简洁,简洁推送命令就替换一大串代码:git pg → git push origin HEAD:refs/for/develop
git config --global --unset alias.pg
git config --list |grep alias // git bash 条件下
git config --list // 很多配置信息都有,要找到alias
修改别名
进入电脑用户名文件夹,快捷键windows系统 开始键 + .
找到.gitconfig文件
找到之前设置好的别名进行修改和保存
git --version //先查看版本
git update //0.17.1之前用
git update-git-for-windows //0.17.1之后用
解决方案:最后加上 --allow-unrelated-histories
参考: git pull 提示错误 fatal: refusing to merge unrelated histories
可视化工具 source tree : GUI for git|SourceTree|入门基础
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。