#从mastercheckout git checkout master common/xxx.txt #显示log树 git log --pretty=format:"%h %s" --graph #删除文件远程分支没生效, add时加 --all 参数 git add --all delete_log_indices.sh es.sh #在一个未上线的需求分支commit了另一个需求的代码 #先找到上次的commit id, 用 soft 参数 reset git reset --soft 5b10152 文件变成未commit状态,然后再checkout 到master建新分支提交 1.git 未 commit 前三种状态, Untracked files, 用 git add 将文件包含到待提交清单中,会在暂存区域生成快照, Chanes to be commited Changes not staged for commit, 修改了但未暂存,未暂存部分不会被提交 2.git commit 那个框, 选择文件点 revert 可以回退到未修改的状态 3.git stash 把修改存到暂存区 git stash pop 取出来 4.git pull 新建分支先拉dev 的代码 不要在 dev 上写代码 5.把错误的代码提到远程dev了,回退到上个版本 选择要回退的版本,右键 回退后 git push origin dev --force 不要再拉了 6. git diff meeting-room-bug dev --stat 对比分支的差别 7.以后如果你们的git 报错了 就是 unlink file '.git/..... 然后输入什么都不管用的情况 试着输入这个命令试试 git gc --auto 是释放本地的被占用的文件资源 8.删除tag git tag | grep -- 'to8tooa-2\.[0-9]\.[0-9]\.[0-9]\w*' | xargs git tag -d git tag | grep -- 'to8tooa-3\.[0-9]\.[0-9]\.[0-9]\w*' | xargs git tag -d git tag -d ] git tag -d oaflow-1.5.4.7-201606011100-liya git tag -d to8tooa-201702130925-liya git fetch --tag 9. 删除远程分支: git push origin :reson-local 批量删除远程的tag: git tag | grep -- 'to8tooa-3\.[0-8]\.[0-9]\.[0-9]*' | xargs git push origin --delete tag 批量删除本地的tag: git tag | grep -- 'to8tooa-1\.[0-9]\.[0-9]\.[0-9]\w*' | xargs git tag -d 删除本地所有的tag: rm -rf .git/refs/tags/* 拉取远程的tag: git fetch --tag 10.删除本地分支 git branch | grep 'watson-a' | xargs git branch -d git branch | grep 'watson-a' | xargs git branch -D D是强制删除,不要轻易用 -D,避免误删! 11.删除远程分支 (1)用 grep 命令 筛选要删除的分支,重定向到文件里 git branch -a | grep "remotes/origin" | cut -nb 18-50 > branch.txt (2)手动打开branch.txt,剔除不用删除的分支,把行首替换为git push origin : 保存,构造好命令类似这样: git push origin :seven-local git push origin :seven-optimize git push origin :watson-company-finance (3)把构造好的命令粘贴到控制台 12.不小心 add 了很多不要的文件 git status > reset.txt 手动修改reset.txt,只保留文件名 cat reset.txt |xargs git reset HEAD 把oa 目录下的 reset.txt 删除 13.还原master 问题:git pull 没带分支名,结果把其他分支的东西都拉过来了。 还原:master 不能reset,因为master是保护分支。 只能复制最新的代码覆盖旧的,再提到master上。 14.git reset origin/dev --hard 强制用远程的分支覆盖本地的 15.不小心在master分支修改了代码,而且切不回本地分支 可以先暂存到master,然后切回本地分支,合master代码,然后再回master释放,然后切就可以了 16.没打base就merge了代码,可以让其他人帮忙打base再上master 17.根目录下的exclude /index.php 18.撤销 merge 到master的代码,未push git reset origin/master --hard 19.查修改记录 git blame E:\oa\basic\modules\flow\models\flow\Leave.php 20.重置到master git reset origin/master --hard git push origin dev --force 21.把master重置要某个tag git push origin master --force 22.删除远程tag git push origin --delete tag to8tooa-4.9.2.5-2017121121942-crispan git push origin --delete tag v2.98-2.0.1.8.0.7.3.1.1.0.4.6-201807311704-watson 23.本地分支重置到某个 commit 重置前先备份 git checkout -b watson-vr-interface.bak commit 是按时间排序的,所以中间有了别人的代码的话,要重置到之前的commit git bash git log 查记录,可以看到中文 然后 24.比对两个tag区别 git diff to8tooa-5.1.5.7-201802010954-watson to8tooa-5.1.5.8-201802010958-watson --stat 25.clone 时设置代理 git clone -c http.proxy=http://192.168.1.142:3128/ https://github.com/domnikl/DesignPatternsPHP.git git clone -c http.proxy=http://192.168.1.142:3128/ https://github.com/NoNeil/ProxySetting.git git clone -c http.proxy=http://192.168.1.142:3128/ https://github.com/symfony/demo.git 26. git symbolic-ref --short -q HEAD 27. git tag | tail -1 28. git merge 和 git merge --no-ff 29.从远处分支新建分支 查看远程分支 git branch -a git checkout -b watson-a remotes/origin/watson-a 30. #删除 git push origin --delete tag v2.98-2.0.1.8.0.7.3.1.1.0.4.6-201807311704-watson 31. #误删的文件,杀毒软件 git status > file.txt 编辑file,只剩下一行行的文件名 cat file.txt |xargs git checkout -- 32.查看关联的远程仓库 git remote -v git remote add origin ssh://git@192.168.1.1/home/git/test.git git remote remove origin 33.生成公钥 ssh-keygen