git的后悔药,各种revert、reset、回退、回滚操作的方式
git reset
撤销git add
过的文件-
git checkout .
撤回没提交的更改,要在repo的根目录运行 -
git reset --hard HEAD
也可以撤回没提交的更改,可以在任意的子目录中运行 -
git clean -fdx
删除untracked文件 -
git reset --hard origin/master
回到过去
git reset
git add
过的文件
git checkout .
撤回没提交的更改,要在repo的根目录运行
git reset --hard HEAD
也可以撤回没提交的更改,可以在任意的子目录中运行
git clean -fdx
删除untracked文件
git reset --hard origin/master
回到过去
git remote set-url
命令可以改变一个代码库的url.
git remote set-url
命令可以接受两个参数:
The git remote set-url command takes two arguments:
origin
https://github.com/USERNAME/REPOSITORY_2.git
如果你想改为使用 HTTPSgit@github.com:USER/REPOSITORY_2.git
如果你想改为使用SSHgit remote -v
origin git@github.com:USERNAME/REPOSITORY.git (fetch)
origin git@github.com:USERNAME/REPOSITORY.git (push)
remote set-url
命令切换url.
git remote set-url origin https://github.com/USERNAME/REPOSITORY_2.git
git remote -v
origin https://github.com/USERNAME/REPOSITORY2.git (fetch)
origin https://github.com/USERNAME/REPOSITORY2.git (push)
下一次你使用 git fetch
, git pull
, 或者 git push
命令的时候,会提示你输入用户名和密码。
显示现在的远程url.
git remote -v
origin https://github.com/USERNAME/REPOSITORY.git (fetch)
origin https://github.com/USERNAME/REPOSITORY.git (push)
remote set-url
命令切换url.
git remote set-url origin git@github.com:USERNAME/REPOSITORY2.git
git remote -v
origin git@github.com:USERNAME/REPOSITORY2.git (fetch)
origin git@github.com:USERNAME/REPOSITORY2.git (push)
可以使用命令行设置,也可以通过配置文件设置。
git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080
git config --global https.proxy https://proxyuser:proxypwd@proxy.server.com:8080
proxyuser
是你代理服务器的用户名proxypwd
是你代理服务器用户名的密码proxy.server.com
是你代理服务器的地址,直接写ip也可以8080
代理服务器的端口git config --global --unset http.proxy
git config --global --unset https.proxy
在你的用户的根目录下,有个文件.gitconfig
,可以通过更改这个文件来设置代理
增加以下代码:
[http]
proxy = http://username:password@proxy.at.your.org:8080
windows: C:\Users\[YourName]\AppData\Roaming\Sublime Text 3\Packages
mac: /Library/Application\ Support/Sublime\ Text\ 3/Packages/
linux:
Package Control.last-run
Package Control.ca-list
Package Control.ca-bundle
Package Control.system-ca-bundle
Package Control.cache/
Package Control.ca-certs/
cd [package folder]/User/
git init
git add
git commit -m "Initial"
git remote add origin [your git repo]
git push origin master
cd [package folder]
mv User User.old
git clone [your git repo] User
cd [package folder]/User
git add -A
git commit -m "Update settings"
git push
cd [package folder]/User
git pull
“git add -A
” 相当于 “git add .; git add -u
“.
“git add .
“虽然看起来像是把目录下所有文件都添加,但是其实并没有,它只会添加新建和更改过的文件。
“git add -u
” 中-u代表的是update
,只会记录已有文件的update,不会记录新建的文件。
“git add -A
” 可以做上面两件事的.
你可以按照下面的命令去测试这些区别:
git init
echo Change me > change-me
echo Delete me > delete-me
git add change-me delete-me
git commit -m initial
echo OK >> change-me
rm delete-me
echo Add me > add-me
git status
# Changed but not updated:
# modified: change-me
# deleted: delete-me
# Untracked files:
# add-me
git add .
git status
# Changes to be committed:
# new file: add-me
# modified: change-me
# Changed but not updated:
# deleted: delete-me
git reset
git add -u
git status
# Changes to be committed:
# modified: change-me
# deleted: delete-me
# Untracked files:
# add-me
git reset
git add -A
git status
# Changes to be committed:
# new file: add-me
# modified: change-me
# deleted: delete-me
git add -A
?添加所有git add .
?添加新文件和修改的文件,?不包括删除的git add -u
?添加修改和和删除的文件,?不包括新增的