Git教程 Git各种指令大全
版本库又名仓库,英文名repository,可以简单的理解为一个目录,目录里面的所有文件都可以被Git管理,每个文件的修改,删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻还可以将文件”还原”。
①git init 创建本地仓库
这时候你当前目录下会多了一个.git的目录(隐藏文件),这个目录是Git来跟踪管理版本的,没事千万不要手动乱改这个目录里面的文件,否则,会把git仓库给破坏了。
②git remote add origin https://github.com/xxxx/axxxx.git 和远程仓库连接
③git add . 将当前目录下修改的所有代码从工作区添加到暂存区 . 代表当前目录
git add xxx 将xxx文件加入暂存区
④git commit -m "注释" 将项目从暂存区存到本地仓库
⑤git push <远程主机名> <本地分支名>:<远程分支名>
git push origin xxx 将本地仓库的xxx分支的内容推送到远程仓库的xxx分支,如果xxx不存在,则会被新建。
git push origin :xxx 如果省略本地分支名,则表示删除指定的远程分支,因为这等同于推送一个空的本地分支到远程分支。
我们修改所在的区域在暂存区,当我们想要提交到远程仓库时,我们首先要把自己的代码commit(提交)到本地仓库,然后在从本地仓库push到远程仓库,但是切记住一点,我们每一次在commit的时候,都需要先从线上pull最新的代码到本地仓库,然后在把暂存区里面的代码提交到本地仓库,这个时候如果没有冲突固然是最好的,如果有了冲突,需要解决冲突,这个此时本地仓库已经是最新的代码且又包括暂存区上面的代码了,即:提交顺序:pull→merge→commit→push
⑥git pull <远程主机名> <远程分支名>:<本地分支名>
⑦git branch 查看、删除、新建本地/远程仓库分支
⑧git checkout xxx 切换本地/远程仓库分支
⑨git status 查看工作区代码相对于暂存区的差别,即查看是否还有文件未提交
⑩git log 查看历史记录
把当前的版本回退到上一个版本(回滚),可以使用2种命令。第一种是:git reset --hard HEAD^ 那么如果要回退到上上个版本只需把HEAD^ 改成 HEAD^^ 以此类推。那如果要回退到前100个版本的话,使用上面的方法肯定不方便,我们可以使用下面的简便命令操作:git reset --hard HEAD~100 即可。第二种方法,可以通过版本号回退,使用命令方法如下:git reset --hard 版本号 ,但是现在的问题假如我已经关掉过一次命令行或者版本号我并不知道呢?要如何知道增加3333内容的版本号呢?可以通过如下命令即可获取到版本号:git reflog
Git如何将本地仓库和远程仓库做关联
Git初次提交代码到空的远端仓库
! [rejected] cfj -> cfj (non-fast-forward)
error: failed to push some refs to 'https://github.com/freaky-2020/sote-frontend.git'
hint: Updates were rejected because a pushed branch tip is behind its remote
hint: counterpart. Check out this branch and integrate the remote changes
hint: (e.g. 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
分析:
可能是之前的推送的分支有问题,我在更新我的分支时,一直被拒绝(上面的报错),参考了网上的先pull远程分支来合并冲突,然后再push等方法无用后,我看了这篇文章How to fix issue in Git然后决定强行推送我的分支
方法:
git push --force-with-lease origin master:cfj
注:
①安全问题的解决: Git 更安全的强制推送
②强行推送后,可以正常使用push了
报错:
fatal: unable to access 'https://github.com/freaky-2020/sote-frontend.git/': OpenSSL SSL_read: Connection was reset, errno 10054
或者
fatal: unable to access 'https://github.com/freaky-2020/sote-frontend.git/': Failed to connect to github.com port 443: Timed out
分析:
之前尝试了设置全局代理、清除代理、解除ssl验证等各种方法,后来同学跟我说要给git单独设置代理然后我参考了一文让你了解如何为 Git 设置代理这篇文章,使用clash来进行代理,最终成功解决问题
git config --global http.https://github.com.proxy http://127.0.0.1:7890
报错:
the requested url returned error: 403
原因:push前,一定要在《邮箱》中确定github的仓库的邀请,不然的话,人家不给你权限你怎么push都发不到仓库里的!!!!(一个小时的血泪)