Git 使用技巧
直接提交当前分支
git add . && git commit -m ‘评价测试’ && git pull origin `git branch | sed -n "/* /s///p"` && git push origin `git branch | sed -n "/* /s///p"`
coding 没有配置ssh,使用账号密码clone
git clone http://yourname:password@git.coding.net/name/project.git https 上传o
创建分支
http://blog.csdn.net/guang11cheng/article/details/37757201
操作分支
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001375840038939c291467cc7c747b1810aab2fb8863508000
分支合并
https://www.cnblogs.com/mengdd/p/3585038.html
精品 git 操作流程
https://blog.csdn.net/zzh920625/article/details/78315127/
版本回退
git log –pretty=oneline 查看
git branch —–>git checkout —-> git reflog —> git reset –hard HEAD@{0}
删除远程分支 git branch -r —->git branch -r -d
清空缓存 可以让暂存区的文件删除了 .gitignore
git rm -r –cache .
常见问题
git merge origin/master –allow-unrelated-histories
第一次pull 不合并
git pull origin master –allow-unrelated-histories
两个没有相关历史的库 首次提交更新代码
切换分支并创建分支 拉取远程dev分支
git checkout -b dev origin/dev
例如在master分支执行 拉去dev分支合并到master分支
git merge dev
git status 查看当前分支的状态
git checkout — 文件名字 撤销当前修改的文件
git rm text.txt 删除暂存区的文件
git push -u origin master 第一次推送内容到远程分支时候
-u参数代表 把本地的master推送到远程master上,并把本地master和远程master关联起来
修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;
当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场。
git rm .env.production –cached 删除暂存区的文件
2.2.不额外建立本地分支
代码展示
//查询当前远程的版本
$ git remote -v
//获取最新代码到本地(本地当前分支为[branch],获取的远端的分支为[origin/branch])
$ git fetch origin master [示例1:获取远端的origin/master分支]
$ git fetch origin dev [示例2:获取远端的origin/dev分支]
//查看版本差异
$ git log -p master..origin/master [示例1:查看本地master与远端origin/master的版本差异]
$ git log -p dev..origin/dev [示例2:查看本地dev与远端origin/dev的版本差异]
//合并最新代码到本地分支
$ git merge origin/master [示例1:合并远端分支origin/master到当前分支]
$ git merge origin/dev [示例2:合并远端分支origin/dev到当前分支]
ssh-keygen -t rsa -C "2233xxx112@qq.com"
直接推送当前所在的分支
命令git tag -a v0.1.0 -m “release 0.1.0 version” 创建附注标签。
git 使用标签
git tag -l 查看tag
git tag -d 删除tag
git push origin --tags 推送本地的所有标签
git push origin tag名称 推送指定的标签
git show tag名称 查看标签
stash 使用
### 将所有未提交的修改(提交到暂存区)保存至堆栈中
$ git stash
### 给本次存储加个备注,以防时间久了忘了
$ git stash save "存储"
### 存储未追踪的文件
$ git stash -u
### 查看存储记录
$ git stash list
在 Windows 上和 PowerShell 中,需要加双引号
### 恢复后,stash 记录并不删除
$ git stash apply "stash@{index}"
### 恢复的同时把 stash 记录也删了
$ git stash pop "stash@{index}"
### 删除 stash 记录
$ git stash drop "stash@{index}"
### 删除所有存储的进度
$ git stash clear
### 查看当前记录中修改了哪些文件
$ git stash show "stash@{index}"
### 查看当前记录中修改了哪些文件的内容
$ git stash show -p "stash@{index}"
git 合并代码额外操作
git pull origin master
git pull --rebase origin master ###拉取master的代码,合并到本地(使用rebase)
这里可以使用git pull origin master或者是 git pull --rebase origin master,这里pull是fetch+merge的操作,git pull --rebase是fetch+rebase的操作。rebase和merge都是合并代码,他们主要区别是merge是一股脑的合并代码,并且在发生冲突解决后会要提一条commit,而rebase是变基操作,它解决冲突后不会产生多余的commit记录,这保证了分支的整洁和美观。不过合并时多个commit有冲突的时候,rebase会一个一个的解决,在这种情况下会比较麻烦。这两种操作视情况使用。
merge如果发生冲突就使用 git status 查看冲突的文件,修改后直接git add . 然后git commit -m "****",然后git push 提交
rebase如果发生冲突就使用 git status 查看冲突的文件,解决完所有的冲突后,git add . ,然后git rebase --continue继续合并,然后git push 提交(注意如果使用rebase的方式的话,修改后提交不用commit)
https://git-scm.com/book/zh/v2/Git-工具-子模块 git submodule使用
拉取含有子模块的代码
git clone –recurse-submodules https://github.com/chaconinc/MainProject
git下载github代码慢问题
一定是使用 ssr的情况下
去自己的电脑的网络管理查看socks5查看代理端口 然后执行
走 HTTP 代理
git config --global http.proxy "http://127.0.0.1:1087"
git config --global https.proxy "http://127.0.0.1:1087"
走 socks5 代理
git config --global http.proxy "socks5://127.0.0.1:1086"
git config --global https.proxy "socks5://127.0.0.1:1086"
只针对github 做代理
# socks5
git config --global http.https://github.com.proxy socks5://127.0.0.1:1086
git config --global https.https://github.com.proxy socks5://127.0.0.1:1086
# http
git config --global http.https://github.com.proxy https://127.0.0.1:1087
git config --global https.https://github.com.proxy https://127.0.0.1:1087
只配置单个项目下git配置
进入到项目的.git文件里面
例如:git config 不加--global http.https://github.com.proxy https://127.0.0.1:1087
SSH 形式
修改 ~/.ssh/config
文件(不存在则新建):
ProxyCommand nc -x localhost:1086 %h %p
查看配置
git config –global –list
修改配置
git config –global –edit
取消设置
git config --global --unset http.proxy
git config --global --unset https.proxy
iterm2里面使用 在.zshrc 里面加入 source ~/.zshrc
使用 curl myip.ipip.net 测试自己的ip 是否变了
alias proxy="export ALL_PROXY=socks5://127.0.0.1:1086"
alias unproxy="unset ALL_PROXY"