获取公钥:
1、先执行以下语句来判断是否已经存在本地公钥:
cat ~/.ssh/id_rsa.pub
2、如果你看到一长串以 ssh-rsa或 ssh-dsa开头的字符串, 你可以跳过 ssh-keygen的步骤。否则
你可以按如下命令来生成ssh key:
ssh-keygen -t rsa -C “835570372@qq.com”
3、这个指令会要求你提供一个位置和文件名去存放键值对和密码,你可以点击Enter键去使用默认值。
用以下命令获取你生成的公钥:
cat ~/.ssh/id_rsa.pub
1. ignore
定义忽略规则,忽略不需要提交的文件
2. external diff tool
用第三方工具对比修改内容
3. discard charge
丢弃修改内容
4. file blame
查看文件每行是谁修改的
5. master指向的分支是主分支
head指向的是当前分支
每次提交,master分支都会向前移动一步
节点1 --- 节点2 ---- 节点3
<-- master <-- head
6. 工作区(workspace):
就是电脑里能看到的目录,即你代码放的那个文件夹。
及时性强,对文件的所有更改都会立刻体现在这里。
8. 暂存区(index/stage):
git add后,当前对文件的更改会保存到这个区。
9. 本地仓库repository(也叫版本库、仓库区):
git commit后,当前暂存区里对文件的更改会提交到本地仓库。
push的时候,就是把本地仓库的数据push到远程仓库
这里有提交的所有版本的数据。
工作区有一个隐藏目录.git, 这个不算工作区,而是git的版本库
10. 远程仓库remote(遥远的;远程):远程仓库名一般叫origin.
git push以后,本地仓库里优先于远程仓库的commit会被push到远程仓库
Workspace---(add)---Index---(commit)---Respository---(push)---Remote
工作区 暂存区 本地仓库 远程仓库
注:本地仓库和远程仓库要一一对应
例如:local: 仓库1 master(主干); 仓库2 dev(分支)
remote: 仓库1 master(主干); 仓库2 dev(分支)
11. 创建一个空仓库
mkdir test
cd test
git init //Initialized empty Git repository in /Users/tianqixin/www/runoob/.git/
11. git clone https://github.com/geyujiao/k8s1.git
git config --global user.name "abc"
git config --global user.email "123@qq.com"
提交新文件 git add file1 file2
git commit -m "add files"
git push
拉取代码:git pull
删除文件:git rm -r 文件名
11. git config -l
git config --list
查看配置
11. git diff
查看修改内容
11. git add
将修改添加到暂存区
12. git commit
修改同步到版本库
11. git pull
获取远程服务器上的代码,并立即合并到你的本地仓库。
默认支持fetch(获取)和merge(合并)的操作。
git pull = git fetch + git merge
12. git fetch (fetch:获取)
是指获取远程代码,然后创建一个本地copy,你不应该直接对这个copy做任何的操作,
而应该创建一个本地分支,然后在本地分支上进行工作。
13. git clone(从无到有,完全复制copy)
会为它被克隆的远程repo创建一个名为"orign"的local repo,
并为远程repo的活动分支创建一个本地分支以及远程跟踪分支。
14. git rebase
你对当前分支所做的任何改变都被保存到一个临时区域,
因此你的分支将会和改变之前一样干净。
如果你用git pull -rebase,git将会获取远程的改变,
遍历当前本地分支,然后替换你当前分支的所有改动。
15. finally
使用git branch -a,它会显示本地仓库的所有分支:本地的,远程的。
16. git status
查看在你上次提交后是否有修改。
git status -s //简短的结果输出,不加-s 详细输出
17. fork 一个仓库 (fork 分叉)
fork就是复制一个代码仓库,fork一个代码仓库之后,你就可以任意的尝试
去修改代码,而不会影响到源项目。
18. git reset (慎用:容易删除别人代码)
作用:修改HEAD的位置,即将HEAD指向的位置改变为之前存在的某个版本。
reset后,目标版本之后的版本不见了。代码丢失不会保存,不会有痕迹。
适用场景:如果想恢复到之前某个提交的版本,且那个版本之后提交的版本我们都不要了,就可用这方法。
操作:
git log //查看版本号
git reset --hard 目标版本号 //将版本回退
git push -f
//强制提交修改。如果用git push会报错,因为我们本地库HEAD指向的版本比远程库的要旧。
19. git revert (慎用:容易删除别人代码)
作用:通过反做创建一个新的版本,这个版本的内容与我们要回退到的目标版本一样,
但是HEAD指针是指向这个新生成的版本,而不是目标版本。
适用场景:如果我们想恢复之前的某一版本(该版本不是merge类型),但是又想保留该
目标版本后面的版本,记录下这整个版本变动流程,就可用这方法。
git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息
git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容
操作:
git log //查看版本号
git revert -n 版本号
git commit -m "日志"
git push
20. git branch
查看本地分支
21. git branch -r
查看远程分支
22. git branch -a
查看本地和远程所有分支
23. git checkout -b 新分支名 origin/已有的分支名
git checkout -b 新分支名 //默认checkout origin/master
24. git checkout 分支名称(dev或者master)
切换到已有分支
25. git branch -d 分支
删除已有分支
26. git branch -D 分支
强制删除已有分支
27. 分支合并???????????
问题:
1. You do not have permission to pull from the repository via HTTPS
法1: 控制面板-用户账户-凭据管理器-windows凭据-普通凭据 修改git账号信息
法2:修改git配置文件
vim gopath/src/项目名/.git/config
[remote "origin"]
url = https://qianxiaoanran:08280644GEyujiao@gitee.com/banyan_tree_in_beijing/cwi_activity.git
fetch = +refs/heads/*:refs/remotes/origin/* */
2. 用户名密码错误
git config --system --unset credential.helper //执行此命令会在git push时候输入用户名和密码
3.