Git使用
1.git原理简介


2.创建项目的SSH Key,在桌面打开Git Bash快捷方式,或者是桌面右击选择Git Bash Here
a>配置用户名:git config --global user.name (github上注册的用户名)
b>配置用户邮箱:git config --global user.email (GitHub上注册时的邮箱)
git config --global user.name "yourusername"
git config --global user.email "youremail@example.com"
查看配置是否成功
git config user.name
git config user.email
创建SSH Key,在终端输入 cd ~/.ssh 回车(进不进入.ssh目录无所谓)
c>在Git终端在输入ssh-keygen -t rsa -C "youremail@example.com" ( GitHub上注册时的邮箱 )
ssh-keygen -t rsa -C "youremail@example.com"

创建完成后,在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥
3.登录GitHub,打开“settings”的“SSH Keys”页面,然后,点“New SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容,点“Add Key”,你就应该看到已经添加的Key
a>说明:如果当前目录不是~/.ssh目录,就输入cd ~/.ssh,然后ls 查看当前目录下的文件,vi id_rsa.pub,打开文件,选中内容右击点击Copy

b>登录你的GitHub,添加SSH Key

4.将GitHub上的项目,克隆到本地一份
a>新建一个仓库(test)
b>复制仓库的HTTP 地址
c->将GitHub上的仓库克隆到本地
git clone http地址
e>进入该仓库就会显示(master分支)

5.将本地文件git到GitHub远程仓库
输入git status命令查看仓库状态:
输入git log命令查看仓库日志:
git add . (注:别忘记后面的.,此操作是把Test文件夹下面的文件都添加进来)
(提交文件夹:git add src/)
git commit -m "提交信息" (注:“提交信息”里面换成你需要,如“first commit”)
git push -u origin master (注:此操作目的是把本地仓库push到github上面,此步骤需要你输入帐号和密码)
a->如下图(git remote add origin 你的GitHub仓库的HTTPS地址或者是SSH地址,步骤4所示的地址),此时在test2目录下会有远程仓库上的README.md文件

b->将创建好的test.txt文件通过下图方式提交到远程仓库GitHub上(执行git add test.txt如果报错,请查看下面的解决方法)

在执行git add test.txt 将工作区文件添加到暂存区,报错如下

解决方法:是因为unix系统与windows系统跨平台问题导致,执行git config core.autocrlf false后,再提交就不会报错了。
常见命令
$ git clone [url]
下载一个项目以及它所有的版本历史
$ git add [file]
将文件进行快照处理用于版本控制
$ git commit -m"[descriptive message]"
将文件快照永久地记录在版本历史中
$ git push
上传当前本地分支commit到GitHub上
$ git pull
下载服务器上最新的本部并合并更改到本地
$ git reset [commit hash]
撤销所有[commit hash]后的的commit,在本地保存更改
$ git log
列出当前分支的版本历史
push:该单词直译过来就是“推”的意思,如果我们本地的代码有了更新,为了保持本地与远程的代码同步,我们就需要把本地的代码推到远程的仓库,代码示例:
git push origin master
pull:该单词直译过来就是“拉”的意思,如果我们远程仓库的代码有了更新,同样为了保持本地与远程的代码同步,我们就需要把远程的代码拉到本地,代码示例:
git pull origin master
第 6 个命令:git branch
在命令行窗口的光标处,输入git branch命令,查看 Git 仓库的分支情况:

如上图所示,显示了仓库demo中的分支情况,现在仅有一个master分支,其中master分支前的*号表示“当前所在的分支”,例如* master就意味着我们所在的位置为demo仓库的主分支。输入命令git branch a,再输入命令git branch,结果如下图所示:

如上图所示,我们创建了一个名为a的分支,并且当前的位置仍然为主分支。
第 7 个命令:git checkout
在命令行窗口的光标处,输入git checkout a命令,切换到a分支:

如上图所示,我们已经切换到a分支啦!也可以通过命令git branch查看分支情况:

在这里,我们还有一个更简单的方法来查看当前的分支,即通过观察上图中用红色框圈起来的部分。此外,我们也可以在创建分支的同时,直接切换到新分支,命令为git checkout -b,例如输入git checkout -b b命令:

如上图所示,我们在a分支下创建b分支(b为a的分支),并直接切换到b分支。
第 8 个命令:git merge
切换到master分支,然后输入git merge a命令,将a分支合并到master分支:

如上图所示,我们已经将a分支合并到主分支啦!此外,在这里需要注意一点,那就是:在合并分支的时候,要考虑到两个分支是否有冲突,如果有冲突,则不能直接合并,需要先解决冲突;反之,则可以直接合并。
**第 9 个命令:git branch -d & git branch -D **
在命令行窗口的光标处,输入git branch -d a命令,删除a分支:

如上图所示,我们已经将分支a删除啦!不过有的时候,通过git branch -d命令可以出现删除不了现象,例如分支a的代码没有合并到主分支等,这时如果我们一定要删除该分支,那么我们可以通过命令git branch -D进行强制删除。
**第 10 个命令:git tag **
在命令行窗口的光标处,输入git tag v1.0命令,为当前分支添加标签:

如上图所示,我们为当前所在的a分支添加了一个v1.0标签。通过命令git tag即可查看标签记录:

如上图所示,显示了我们添加标签的记录。通过命令git checkout v1.0即可切换到该标签下的代码状态:

“提交内容”中的Author和Email,可以用如下命令进行设置:
git config --global user.name "名字"
git config --global user.email "邮箱"
其中,global表示设置为全局可用,如果想设置局部可用,删除global即可。
解决git缓慢问题
第一步:去这个网站查询3个域名对应的IP地址
https://www.ipaddress.com/
第二步:修改hosts文件
Windows上的hosts文件路径在
C:\Windows\System32\drivers\etc\hosts
Linux的hosts文件路径在/etc/hosts中
sudo vim /etc/hosts
Mac的hosts文件路径也在/etc/hosts中
sudo vi /etc/hosts
192.30.253.113 github.com 151.101.185.194 github.global.ssl.fastly.net 192.30.253.120 codeload.github.com
第三步:刷新DNS缓存
Linux:
sudo /etc/init.d/networking restart
Windows:
ipconfig /flushdns
Mac:
sudo killall -HUP mDNSResponder
版本回退
git reset --hard HEAD^
-
HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。 -
穿梭前,用
git log可以查看提交历史,以便确定要回退到哪个版本。 -
要重返未来,用
git reflog查看命令历史,以便确定要回到未来的哪个版本。
版本回退后想要提交
不要 pull,git push --force强制推送。

浙公网安备 33010602011771号