赞
踩
不忘初心,方得始终~~喵~
文章是供自己平时学习使用,里面添加了一些自己的理解,如有错误欢迎指正
分为两种,一种是https类别的,另一种是ssh类别的,一般我们clone项目代码都是使用ssh类型的地址,通过右侧绿色箭头所指的复制图标就可以直接复制绿色框里的地址,使用也是十分简单,只要在电脑上执行下面的命令即可:
找到你想要拉代码的目录,clone代码:
(当然通过复制图标旁边的下载图标也可以将代码下载下来)
复制下来后,通过编译器打开(我常用vscode)后是处在master(主分支)上的,此时我们要创建一个分支,然后切换到该分支上,如果你在git上建过分支,直接切换到该分支即可:
1、 git上创建:通过new branch 创建分支,填写相关信息即可
下一张图:
2、 命令行创建:git branch 分支名
切换分支: **git checkout 分支名**
2、
当项目完成push代码时,因为多数情况是多人合作项目,在同一个分支上进行开发,为了防止我们push的代码将别人提交的代码抹去,应先pull一下,将别人上传的代码拉到本地,再把自己修改的上传上去,常用顺序:
3、
(终端输入):ssh-keygen -t rsa -C “注册的gitlab邮箱”
(后面有一些设置不需要单独处理,一路回车即可,成功之后大概长这样)
4、
查看公钥内容(终端里输入):cat ~/.ssh/id_rsa.pub
(以ssh-rsa开头的一大串全都是,全部复制下来加到git公钥里)
点击用户头像,在user Settings中找到 SSH Keys,根据提示添加(没截图),添完长这样:
git reset HEAD~1
5、
如果你是在本地用命令创建的分支,那你需要三步来完成:
此时如果你提交代码,会提示当前分支没有远程分支,如下:
fatal: The current branch your_branch_name has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream origin your_branch_name
这代表你没有给你当前的本地分支设置远程分支,这是第二步,设置远程分支:
将本地分支推送到远程分支: git push origin 分支名
第三步将本地分支和远程分支关联起来(一般情况下远程分支名和本地分支名是一样的):
git branch --set-upstream-to=origin/远程分支名 本地分支名
然后再提交代码就可以了。
当然也可以在本地创建分支时就设置远程分支:
git checkout -b local_branch -t upstream_name/remote_branch
6、
有时我们需要将本地分支删除,然后再重新从远程分支拉取:
git branch -d test001
,将test001删除,这步是删除我们本地的分支git fetch origin test002:test002
git branch --set-upstream-to=origin/远程分支名 本地分支名
有时我们需要将现在更改的代码暂存起来,然后去处理一些其他的事情,这时可就用到:
删除完后可以通过git branch -a或者去git仓库搜索查看分支是否删除成功
9、
git merge --abort :简单地退出合并(指提交(commit)了但是没有push的代码)。
10、
如果合并完成后(push操作已完成)才发现错误,你还是可以撤销它,你需要键入 :
原因:reset是将代码回滚,比如我提交的是1,2版本,队友提交的是3,4版本,代码提交顺序是1–>2–>3–>4,现在我通过reset想回滚到2版本,那么你队友的3版本和4版本的提交就没有了 ~~而且如果是公共分支,当别人本地也有你要回滚的代码,此时你再回滚的话,别人本地的代码并不会因为远程代码的回滚而消失,需要删除别人本地分支重新拉取远程分支才可,所以比较适合个人的开发分支,不适合多人共用的分支)
11、那我想留下队友的版本又想改自己的怎么办?那就需要用到revert,
原因:revert是在当前提交后面新增一次提交,不会改变历史提交,所以也不会丢代码(刚刚的例子用revert后显示的提交顺序1–>2–>3–>4–>新改的2)
用法:请自行百度。。。。 git revert 要更改的提交ID
12、
有时合并时会提示: 你为什么要创建此次合并, 这时我们就可以按如下方式操作:
13、
推荐第一种方法:
在想要反合master分支的分支执行命令: git pull origin master
第二种方法:
切换到master分支:git checkout master
将代码pull到本地:git pull
切换到你所在分支: git checkout 分支名
合并代码: git merge master --> 解决冲突
git add . -->git commit - m “提交信息” ( 如果此处遇到提交前的检查,而这些检查没有必要,你就可以跳过检查,强制提交(命令):git commit - m “提交信息” --no-verify )
git push
14、
1、切换到master分支,然后git merge 要合并的分支(记得pull代码,此时合并的是要合并的分支的本地分支的代码)
2、直接在master分支执行命令: git pull origin 要合并的分支, 此命令会自动将要合并的那个分支远程分支的代码合并到master,不会合并本地分支代码进master
ps: 在本地的分支代码为本地分支代码, 在git 仓库中的分支代码为远程分支代码, 这两个分支的代码未必相同,
这取决于你是否执行了本地回退操作或者git pull操作或者本地提交了commit 但没有push到远程
15、
用git log --graph命令可以看到分支合并图
16、
git stash list可以查看储藏列表
17、
git stash apply @{index} 可以查看某一次的储藏内容,index为储藏列表的下标
18、
只克隆最近一次 commit 记录, 可指定分支, 应应急还是可以的
git clone --depth=1 git克隆地址
该方法使用后遗症请看这篇
19、
1、 在终端分别执行以下两条命令获取对应的 ip地址
nslookup github.com
nslookup github.global.ssl.fastly.Net
把两条命令红框位置的ip和域名加到hosts里
2、打开hosts文件(mac命令: sudo vi /etc/hosts) , 在后面配置上对应的地址及ip
配置方法:
sudo dscacheutil -flushcache
然后再尝试git clone 速度就会比较快啦~
20、
因为缓存区溢出curl的postBuffer的默认值太小,需要增加缓存
使用git命令增大缓存(单位是b,524288000B是500M左右, 1048576000 是 1G)
git config --global http.postBuffer 524288000
使用git config --list查看是否生效
21、
git config --global http.lowSpeedLimit 0
git config --global http.lowSpeedTime 9999
2019.11.28:
今天遇到一个十分头疼的事情, 就是访问git 时一直提示:
ECONNECT xxxxxxx: Proxy Authentication Required
ssh_exchange_identification: Connection closed by remote host
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
查阅很多文档, 发现问题是我没有修改git配置的密码(mac):
Enter file in which the key is (/Users/XXXXXX/.ssh/id_rsa):
Enter old passphrase:
Key has comment 'XXXX@XXXX'
Enter new passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved with the new passphrase.
目前能想到的基本就是这些了,以后有遇到再补充
参考文章:
https://git-scm.com/book/zh/v2/Git-%E5%B7%A5%E5%85%B7-%E9%AB%98%E7%BA%A7%E5%90%88%E5%B9%B6
https://blog.csdn.net/weixin_38154321/article/details/80676939
https://www.git-tower.com/learn/git/ebook/cn/command-line/advanced-topics/merge-conflicts
https://www.jianshu.com/p/57f98c22ba4b
https://blog.csdn.net/qiwoo_weekly/article/details/128710769
https://www.u72.net/IT/show-56580.html
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。