-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Git小应用 #3
Comments
目录
展示帮助信息git help -g 回到远程仓库的状态抛弃本地所有的修改,回到远程仓库的状态。 git fetch --all && git reset --hard origin/master 重设第一个commit也就是把所有的改动都重新放回工作区,并清空所有的commit,这样就可以重新提交第一个commit了 git update-ref -d HEAD 展示工作区和暂存区的不同输出工作区和暂存区的different(不同)。 git diff 还可以展示本地仓库中任意两个commit之间的文件变动: git diff <commit-id> <commit-id> 展示暂存区和最近版本的不同输出暂存区和本地最近的版本(commit)的different(不同)。 git diff --cached 展示暂存区、工作区和最近版本的不同输出工作区、暂存区 和本地最近的版本(commit)的different(不同)。 git diff HEAD 快速切换分支git checkout - 删除已经合并到master的分支git branch --merged master | grep -v '^\*\| master' | xargs -n 1 git branch -d 展示本地分支关联远程仓库的情况git branch -vv 关联远程分支关联之后, git branch -u origin/mybranch 或者在push时加上 git push origin/mybranch -u 列出所有远程分支-r参数相当于:remote git branch -r 列出本地和远程分支-a参数相当于:all git branch -a 创建并切换到本地分支git checkout -b <branch-name> 创建并切换到远程分支git checkout -b <branch-name> origin/<branch-name> 删除本地分支git branch -d <local-branchname> 删除远程分支git push origin --delete <remote-branchname> 或者 git push origin :<remote-branchname> 重命名本地分支git branch -m <new-branch-name> 查看标签
展示当前分支的最近的tag git describe --tags --abbrev=0 本地创建标签git tag <version-number> 默认tag是打在最近的一次commit上,如果需要指定commit打tag: $ git tag -a <version-number> -m "v1.0 发布(描述)" <commit-id> 推送标签到远程仓库首先要保证本地创建好了标签才可以推送标签到远程仓库: git push origin <local-version-number> 一次性推送所有标签,同步到远程仓库:
删除本地标签git tag -d <tag-name> 删除远程标签删除远程标签需要先删除本地标签,再执行下面的命令: git push origin :refs/tags/<tag-name> 切回到某个标签一般上线之前都会打tag,就是为了防止上线后出现问题,方便快速回退到上一版本。下面的命令是回到某一标签下的状态: git checkout -b branch_name tag_name 放弃工作区的修改git checkout <file-name> 放弃所有修改: git checkout . 恢复删除的文件git rev-list -n 1 HEAD -- <file_path> #得到 deleting_commit
git checkout <deleting_commit>^ -- <file_path> #回到删除文件 deleting_commit 之前的状态 回到某一个commit的状态,并重新增添一个commitgit revert <commit-id> 回到某个commit的状态,并删除后面的commit和revert的区别:reset命令会抹去某个commit id之后的所有commit git reset <commit-id> 修改上一个commit的描述git commit --amend 查看commit历史git log 查看某段代码是谁写的blame的意思为‘责怪’,你懂的。 git blame <file-name> 显示本地执行过git命令就像shell的history一样
修改作者名git commit --amend --author='Author Name <email@address.com>' 修改远程仓库的urlgit remote set-url origin <URL> 增加远程仓库git remote add origin <remote-url> 列出所有远程仓库git remote 查看两个星期内的改动git whatchanged --since='2 weeks ago' 把A分支的某一个commit,放到B分支上这个过程需要 git checkout <branch-name> && git cherry-pick <commit-id> 给git命令起别名简化命令 git config --global alias.<handle> <command>
比如:git status 改成 git st,这样可以简化命令
git config --global alias.st status 存储当前的修改,但不用提交commit详解可以参考廖雪峰老师的git教程 git stash 保存当前状态,包括untracked的文件untracked文件:新建的文件 git stash -u 展示所有stashesgit stash list 回到某个stash的状态git stash apply <stash@{n}> 回到最后一个stash的状态,并删除这个stashgit stash pop 删除所有的stashgit stash clear 从stash中拿出某个文件的修改git checkout <stash@{n}> -- <file-path> 展示所有tracked的文件git ls-files -t 展示所有untracked的文件git ls-files --others 展示所有忽略的文件git ls-files --others -i --exclude-standard 强制删除untracked的文件可以用来删除新建的文件。如果不指定文件文件名,则清空所有工作的untracked文件。
git clean <file-name> -f 强制删除untracked的目录可以用来删除新建的目录,注意:这个命令也可以用来删除untracked的文件。详情见上一条 git clean <directory-name> -df 展示简化的commit历史git log --pretty=oneline --graph --decorate --all 把某一个分支到导出成一个文件git bundle create <file> <branch-name> 从包中导入分支新建一个分支,分支内容就是上面 git clone repo.bundle <repo-dir> -b <branch-name> 执行rebase之前自动stashgit rebase --autostash 从远程仓库根据ID,拉下某一状态,到本地分支git fetch origin pull/<id>/head:<branch-name> 详细展示一行中的修改git diff --word-diff 清除gitignore文件中记录的文件git clean -X -f 展示所有alias和configs注意: config分为:当前目录(local)和全局(golbal)的config,默认为当前目录的config git config --local --list (当前目录)
git config --global --list (全局) 展示忽略的文件git status --ignored commit历史中显示Branch1有的,但是Branch2没有commitgit log Branch1 ^Branch2 在commit log中显示GPG签名git log --show-signature 删除全局设置git config --global --unset <entry-name> 新建并切换到新分支上,同时这个分支没有任何commit相当于保存修改,但是重写commit历史 git checkout --orphan <branch-name> 展示任意分支某一文件的内容git show <branch-name>:<file-name> clone下来指定的单一分支git clone -b <branch-name> --single-branch https://github.com/user/repo.git 忽略某个文件的改动关闭 track 指定文件的改动,也就是 Git 将不会在记录这个文件的改动
恢复 track 指定文件的改动
忽略文件的权限变化不再将文件的权限变化视作改动 git config core.fileMode false 展示本地所有的分支的commit最新的放在最上面 git for-each-ref --sort=-committerdate --format='%(refname:short)' refs/heads/ 在commit log中查找相关内容通过grep查找,given-text:所需要查找的字段 git log --all --grep='<given-text>' 把暂存区的指定file放到工作区中git reset <file-name> 强制推送git push -f <remote-name> <branch-name> 转载至: 联系我
|
git是什么?
Git小白教程入门
一步步走进git的世界,学习命令
git add 改动的文件名
,此次改动就放到了‘暂存区’git commit 此次修改的描述
,此次改动就放到了’本地仓库’,每个commit,我叫它为一个‘版本’。git push 远程仓库
,此次改动就放到了‘远程仓库’(GitHub等)git log
,最上面那行commit xxxxxx
,后面的字符串就是commit-idThe text was updated successfully, but these errors were encountered: