序
有时候客户端软件是会掉链子的,有时候学一点命令是有益无害的,有时候写篇博客来整理汇总一下是很有必要的。
常用语句一览
git status | 常用于查看本地是否有修改 |
git branch
git branch -r git branch newBranch | 列出本地已经存在的分支 当前分支有 *
列出远程的分支 新建一个名为 newBranch 的分支 |
git pull | 拉取或者更新版本库 |
git add .
git commit -m “logs” | 添加所有的修改的文件到本地缓存
“logs” 为你这次上传的注释 |
git push
git push origin newBranch | 上传本地的commit到服务器的默认分支(master)
上传commit 到服务器的 newBranch分支 |
git checkout newBranch
git checkout . | 切换到newBranch 分支
还原本地所有的已修改文件(不包括新建文件) |
git stash | 在git add .之后用,会发现所有的提交没有了,用git stash pop可以还原回来,但是我一般用此方法进行删除所有修改。 |
一般使用方法
1.非常普通的提交代码到服务器:
git add .
git commit -m “this is log”
git pull (git 默认会让你先更新,然后你才能再去更新,如果更新后发现与本地有冲突,建议使用可视化软件进行合并,然后在重复第一步)
git push (上传到默认分支,如果你的分支不是默认分支,后面 加上 origin 分支名)
2.本地修改删除
还原修改过的文件(新增文件除外):
git checkout .
还原全部文件:
1 2 |
git add . git stash |
还原指定文件 x.xxx
1 |
git checkout -- x.xxx |
3.本地已经commit ,但是不想push了:
1 2 |
git reset HEAD~1 git reset --hard HEAD~1 \\ 如果加上参数 --hard 则不保留当前更改 |
4.关于.gitignore失效的处理:
项目有时会出现:存在一个目录,不需要上传,但是之前已经上伟,现在想要忽略,那么:
1 2 3 |
git rm -r --cached . git add . git commit -m 'update .gitignore' |
进阶使用
1.子模块的创建与拉取:
假设主仓库地址为 url_main ,子模块仓库地址为 url_sub
1 2 3 4 5 6 7 |
//来到main的主目录下 git submodule add url_sub //然后commit 并 push //如果是第一次添加子模块,或者其它电脑上如需要执行: git submodule update --init --recursive |
已知问题:上方命令之后,发现所有的子模板跟踪的远程地址为HEAD,正常应该是master,用的时候还得手动更改为master.
2.TLS的使用
项目支持了TLS,但是传输时遇到如下错误:
batch response: HTTP/2 cannot be used except with TLS
那么一个简单的方法是把Git传输类型改一改即可:
1 |
git config http.version HTTP/1.1 |
以上,再次拉取 或者 推送即可~
还有很多
git 语句还有很多,这里只是冰山一角。假如以后遇到一个难以用以上语句解决的问题,我还会更新博客。
我用得少 还没掉过链子。。。哈哈!