yuenshome / yuenshome.github.io

https://yuenshome.github.io
MIT License
84 stars 15 forks source link

git恢复被修改的文件/git cherry-pick/git空提交/git工作流程/git rebase/git bisect #64

Open ysh329 opened 5 years ago

ysh329 commented 5 years ago

git恢复被修改的文件

git恢复被修改的文件,恢复到最后一次提交的改动:

git checkout -- + 需要恢复的文件名

但是,需要注意的是,如果该文件已经 add 到暂存队列中,下面的命令就不灵喽 需要先让这个文件取消暂存:

git reset HEAD -- + 需要取消暂存的文件名

然后再使用第一条命令

如果感觉命令多了记不住,那就为git配置两个别名,比如:

git config --global alias.unstage 'reset HEAD --'
git config --global alias.restore 'checkout --'

我们拿 README.md 这个文件举例,比如修改了一段文字描述,想恢复回原来的样子:

git restore README.md

执行上面命令即可, 如果修改已经被 git add README.md 放入暂存队列,那就要 依次执行 如下两条命令:

git unstage README.md
git restore README.md

如果不配置别名的话,命令应该为:

git reset HEAD -- README.md
git checkout -- README.md

补充

git checkout . 

git checkout . 意思就是把当前副本的修改恢复。 . 代表当前路径下所有的 。 所以想要恢复所有修改的文件,也可以使用此命令,不过注意当前是哪个路径下,恢复错误就傻眼了…hhh~

作者:Mr_温少 来源:CSDN 原文:https://blog.csdn.net/qq_28867949/article/details/79497583 版权声明:本文为博主原创文章,转载请附上博文链接!

ysh329 commented 1 year ago

git 工作流程

git clone https://github.com/tianshuo78520a/Paddle.git
cd Paddle/
git remote add upstream https://github.com/PaddlePaddle/Paddle-Lite.git
pre-commit install
git fetch
git pull upstream develop
git checkout -b test
vim tools/check_doc_approval.py
vim paddle_build.sh 

git status
git add .
pre-commit install *****
git commit -m "test=develop"
git status
git add .
pre-commit install
git commit -m "test=develop"
git status
git push origin test:tools

拉取指定远程分支到本地

表示拉取不成功。我们需要先执行

git fetch

再执行

git checkout -b 本地分支名 origin/远程分支名

取消commit 保留代码,比方忘了pre-commit install

git reset --soft HEAD^

空提交

git commit --allow-empty -m"test=develop"

git cherry-pick流程

git checkout develop
git remote add upstream https://github.com/PaddlePaddle/Paddle-Lite.git
git fetch upstream
git rebase upstream/develop
git checkout upstream/release/v2.8
git cherry-pick eb2ae99a86a3cf55001c6582cf28f99502ed6100
git checkout -b fix_docs_en
git push origin fix_docs_en

FTP

python -m SimpleHTTPServer <port-number>
nohup python -m SimpleHTTPServer 8989 &

clang-3.8

wget -c http://releases.llvm.org/3.8.0/clang+llvm-3.8.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz
xz -d clang+llvm-3.8.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz
tar -xvf clang+llvm-3.8.0-x86_64-linux-gnu-ubuntu-16.04.tar
mv clang+llvm-3.8.0-x86_64-linux-gnu-ubuntu-16.04 /opt/
echo "PATH=${PATH}:/opt/clang+llvm-3.8.0-x86_64-linux-gnu-ubuntu-16.04/bin/" >> ~/.bashrc
source ~/.bashrc

cmake not found

wget -c https://github.com/Kitware/CMake/releases/download/v3.15.4/cmake-3.15.4.tar.gz --no-check-certificate
ysh329 commented 11 months ago

git利用rebase来压缩多个commit

git rebase 

https://blog.csdn.net/qq_23204557/article/details/120002773

ysh329 commented 11 months ago

git利用bisect来查找commit

git bisect start <latest-commit-id> <older-commit-id>

然后执行构建,运行成功则执行git bisect good反之,git bisect bad,则会记录,直到查到第一个bad commit https://zhuanlan.zhihu.com/p/521905865

ysh329 commented 11 months ago

git reflog