1.1. ssh key验证身份(一机一key)
电脑上放私钥,账户上放公钥
不要使用https协议(每次都要输入密码,太不方便)
1.2.生成ssh key
运行
ssh-keygen -t rsa -b 4096 -C 邮箱
然后一直回车,直到没提示
cat ~/.ssh/id_rsa.pub
得到公钥内容,粘贴到GitHub(设置页面)
https://help.github.com/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agenthelp.github.com
1.3.如何测试配对成功
ssh -T git@github.com 如果询问yes/no,回答yes
2.1.上传代码
新建GitHub Repo,复制其ssh地址(即下面的git@xxxxxx)
git remote add origin git@xxxxxx
origin为远程仓库默认名字,可以换,但建议不要换
git push -u origin master
推送本地master分支到远程origin的master分支,如果提示git pull … 就pull一下
git pull是先把远程分支合并到本地对应的分支 如果远程分支没有更新过,才可以省略 git pull
-u origin master 的意思是设置上游分支 之后就不用再设置上游分支了,直接git pull;git push
2.2.如何上传其他分支
方法一:
git push origin x:x
第一个x为本地,第二个为远程
方法二:先切换再上传
git checkout xgit push -u origin x
强制上传: (工作一般用不上)
git push -u origin master -f
2.3.如何上传到两个远程仓库
git remote add repo2 git@xxxxxxgit push -u repo2 master
3.1.下载代码
git clone git@xxxxxx
cd 目标路径
四连操作 git add / git commit / [git pull] /git oush
3.2.下载分支
先下载整个仓库,然后git checkout 分支名
或者自己搜难记的命令( https://stackoverflow.com/questions/1778088/how-do-i-clone-a-single-branch-in-git/7034921#7034921)
下载速度慢,看git clone 满速下载( https://jscode.me/t/topic/789)
3.3.git clone变形 (记得每次下载完cd目录)
git clone git@?/xxx.git
会在当前目录创建一个xxx目录,xxx.git是本地仓库
git clone git@?/xxx.git yyy
本地新建yyy目录
git clone git@?/xxx.git .
注意最后的点和空格,不新建目录,但是当前目录最好是个空的目录
- 国内GitHub替代品(GitHub大牛多)
CODING - 一站式软件研发管理平台 (腾讯战略投资)
gitlab.com
码云 码云 Gitee — 基于 Git 的代码托管和研发协作平台 (开源中国)
4.1. git高级操作
使用 bash alias简化命令(gst/ga/gc/gl/gp)
touch ~/.bashrcecho 'alias ga="git add"'>> ~/.bashrcecho 'alias gc="git commit -v"'>> ~/.bashrcecho 'alias gl="git pull"'>> ~/.bashrcecho 'alias gp="git push"'>> ~/.bashrcecho 'alias gco="git checkout"'>> ~/.bashrcecho 'alias gst="git status -sb"'>> ~/.bashrc
最后 code ~/.bashrc 在文件最后加上(好看的glog)
alias glog="git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit -- | less"
然后重启命令行,或者运行 source ~/.bashrc
美化历史命令:git rebase -i xxxx 中止 git rebase —abort 继续 git rebase —continue
通灵术:git stash (藏)/git stash pop (出)
不忘初心 方得始终
5.1.提交代码显示 Merge branch ‘master’ of gitee.com
解决方法:git pull 时添加 —rebase
git pull --rebasegit push
注意事项:
- 执行 git pull —rebase的时候必须保持本地目录干净。 即:不能存在状态为 modified 的文件。(存在Untracked files是没关系的)
- 如果出现冲突,可以选择手动解决冲突后继续rebase,也可以放弃本次rebase
