分类目录归档:Git

git remote url 从https到ssh,从ssh到https

git remote set-url 命令可以改变一个代码库的url.
git remote set-url 命令可以接受两个参数:
The git remote set-url command takes two arguments:

  • 一个远程名字,比如: origin
  • 远程的url,比如
    • https://github.com/USERNAME/REPOSITORY_2.git 如果你想改为使用 HTTPS
    • git@github.com:USER/REPOSITORY_2.git 如果你想改为使用SSH

远端url从ssh改成https

  1. 打开终端 (Mac 和 Linux) 或者命令行 (Windows).
  2. cd到你的目录里.
  3. 显示现在的远程url.
    git remote -v
    origin  git@github.com:USERNAME/REPOSITORY.git (fetch)
    origin  git@github.com:USERNAME/REPOSITORY.git (push)
    
  4. 使用remote set-url 命令切换url.
    git remote set-url origin https://github.com/USERNAME/REPOSITORY_2.git
    
  5. 验证一下是不是已经改变.
    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 命令的时候,会提示你输入用户名和密码。

Switching remote URLs from HTTPS to SSH

  1. 打开终端 (Mac 和 Linux) 或者命令行 (Windows).
  2. cd到你的目录里.
  3. 显示现在的远程url.

    git remote -v
    origin  https://github.com/USERNAME/REPOSITORY.git (fetch)
    origin  https://github.com/USERNAME/REPOSITORY.git (push)
    
  4. 使用remote set-url 命令切换url.
    git remote set-url origin git@github.com:USERNAME/REPOSITORY2.git
    
  5. 验证一下是不是已经改变.
    git remote -v
    origin  git@github.com:USERNAME/REPOSITORY2.git (fetch)
    origin  git@github.com:USERNAME/REPOSITORY2.git (push)
    

Git 设置代理

可以使用命令行设置,也可以通过配置文件设置。

使用命令行

设置代理

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

mac

mac.gitconfig

ubuntu

ubuntu.gitconfig

windows

image 1420765034

使用git在多台机器上同步sublime text的设置和插件

package文件夹位置

windows: C:\Users\[YourName]\AppData\Roaming\Sublime Text 3\Packages
mac: /Library/Application\ Support/Sublime\ Text\ 3/Packages/
linux:

有些文件/文件夹不需要同步,加入到.gitignore

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

这样就可以在其他电脑上clone这个repo了

cd [package folder]
mv User User.old
git clone [your git repo] User

如果设置有了改变,再同步到repo里

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 -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?添加修改和和删除的文件,?不包括新增的