git使用
创建版本库
操作 | 说明 |
---|---|
$ mkdir learngit | 创建文件夹 |
$ cd learngit | 进入到创建的这个文件夹 |
$ pwd | 列出当前文件夹所在目录 |
$ git init | 把这个目录变成Git可以管理的仓库 |
不一定要是空文件夹,可以是已有的
git add . | 添加到仓库 |
---|---|
git commit -m "…" | 提交到仓库-m是本次提交的说明 |
git status | 查看当前状态 |
git diff | 查看difference |
git log | 从近到远的提交日志记录 |
git reset --hard commit_id | 在历史版本中穿梭 |
git reset --hard HEAD^ | 回退到上一版本 |
git checkout -- file | 把工作区的修改全撤销 |
git rm test.txt | 删除文件test.txt |
ls | 展示当前目录 |
git checkout -b dev / git switch -c dev | 创建+切换分支 |
git branch | 查看所有分支,当前分支前有一个* |
git switch/git checkout | 切换分支 |
git branch -d |
删除分支 |
说明
-
git commit 你可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。
-
HEAD 表示当前版本
-
HEAD 表示上一个版本
-
命令
git checkout -- readme.txt
意思就是,把readme.txt
文件在工作区的修改全部撤销,这里有两种情况:一种是
readme.txt
自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;一种是
readme.txt
已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。 -
git checkout -- file
命令中的--
很重要,没有--
,就变成了“切换到另一个分支”的命令 -
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令
git checkout -- file
。场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令
git reset HEAD
,就回到了场景1,第二步按场景1操作。 -
在Git中,删除也是一个修改操作
-
命令
git rm
用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。
连接远程git仓库
第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa
和id_rsa.pub
这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
$ ssh-keygen -t rsa -C "youremail@example.com"
你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。
如果一切顺利的话,可以在用户主目录里找到.ssh
目录,里面有id_rsa
和id_rsa.pub
两个文件,这两个就是SSH Key的秘钥对,id_rsa
是私钥,不能泄露出去,id_rsa.pub
是公钥,可以放心地告诉任何人。
第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub
文件的内容:
点“Add Key”,你就应该看到已经添加的Key:
添加远程库
1.获取ssh地址
![1571022589338](C:\Users
\WX\Desktop\1571022589338.png)
2.在本地希望放置的文件夹里bash中输入git clone +上面地址(此时线上线下已同步)
3.真机测试
随便在文件夹里放置东西,然后git add . git commint 、git push 后在浏览器中查看发现已同步
提交自己的分支
git add .
git commit -m ' '
git checkout master / git switch master
git merge 自己刚刚的分支
多人协作
多人协作的工作模式通常是这样:
- 首先,可以试图用
git push origin
推送自己的修改; - 如果推送失败,则因为远程分支比你的本地更新,需要先用
git pull
试图合并; - 如果合并有冲突,则解决冲突,并在本地提交;
- 没有冲突或者解决掉冲突后,再用
git push origin
推送就能成功!