git 操作
git 基础操作如下
Command line instructions
- git init 把当前的目录变成可以管理的git仓库,生成隐藏.git文件。
- git add XX 把xx文件添加到暂存区去,追踪更新文件。
- git commit –m “XX” 提交文件 –m 后面的是注释。
- git status 查看仓库状态
- git diff XX 查看XX文件修改了那些内容
- git log 查看历史记录
- git reset –hard HEAD^ 或者 git reset –hard HEAD~ 回退到上一个版本(如果想回退到100个版本,使用git reset –hard HEAD~100 )
- cat XX 查看XX文件内容
- git reflog 查看历史记录的版本号id
- git checkout — XX 把XX文件在工作区的修改全部撤销。
- git rm XX 删除XX文件
- git remote add origin https://lvning_code@bitbucket.org/lvning_code/test.git关联一个远程库
- git push –u(第一次要用-u 以后不需要) origin master 把当前master分支推送到远程库
- git clone https://lvning_code@bitbucket.org/lvning_code/test.git从远程库中克隆
- git checkout –b dev 创建dev分支 并切换到dev分支上
- git branch 查看当前所有的分支
- git checkout master 切换回master分支
- git merge dev 在当前的分支上合并dev分支
- git branch –d dev 删除dev分支
- git branch name 创建分支
- git stash 把当前的工作隐藏起来 等以后恢复现场后继续工作
- git stash list 查看所有被隐藏的文件列表
- git stash apply 恢复被隐藏的文件,但是内容不删除
- git stash drop 删除文件
- git stash pop 恢复文件的同时 也删除文件
- git remote 查看远程库的信息
- git remote –v 查看远程库的详细信息
- git push origin master Git会把master分支推送到远程库对应的远程分支上
- git remote show [remote-name] 查看某个远程仓库的详细信息,比如要看所克隆的 origin 仓库
- git branch [name] 可以先创建新的分支[name]是自己启用的名称
-
删除本地分支:git branch -d 分支名(remotes/origin/分支名)
-
强制删本地:git branch -D 分支名
- 删除远程分支:git push origin --delete 分支名(remotes/origin/分支名)
-
git branch -a 查看远程和本地分支
问题1:本地暂存仓库无法推送到远程仓库中?下面是三种解决方案。
1.使用强制push的方法:
$ git push -u origin master -f
这样会使远程修改丢失,一般是不可取的,尤其是多人协作开发的时候。
2.push前先将远程repository修改pull下来 ¥这是最好用的方式,但是git pull 必须在push 之前操作,一旦执行push后,再执行pull 会出现历史不匹配,拒接合并的现象¥
$ git pull origin master
$ git push -u origin master
3.若不想merge远程和本地修改,可以先创建新的分支:
$ git branch [name]
然后push
$ git push -u origin [name]
问题 2.本地文件被意外删除,请求恢复文件?
- git status 查看仓库状态
- git reflog 查看你本地提交记录 找到最新一次提交的版本号
- .然后 执行 git reset --hard HEAD@{2} 回退到本地最新代码的位置
问题3 :1.将本地的冲突文件冲掉,不仅需要reset到MERGE-HEAD或者HEAD,还需要--hard。没有后面的hard,不会冲掉本地工作区。只会冲掉stage区。
git reset --hard FETCH_HEAD
2.git pull就会成功
3.强推代码:git push -f origin 【推送路径】
问题:
git stash: 备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中。
git pull:拉取服务器上的代码;
git stash pop: 从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。
git stash list: 显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复。
git stash clear: 清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了。
基础git 错误常用操作:
git checkout -- <file>... 单个文件恢复
git reset --hard 恢复上一个节点上传后,所有被删除文件
ls -lah 查看目录下所有文件(包括隐藏数据)
vim 打开文件
在本地仓库的目录下调用命令行删除根目录下的.git文件夹:
find . -name ".git" | xargs rm -Rf
这样本地仓库就清除了,像下面这样,master不见了。
2.手动删除掉残留的.git文件
3.在命令行中输入rm -rf + github仓库地址,例
rm -rf https://github.com/NeroSolomon/VLearning.git
4.在github的对应的库中到setting删除库。
Git提交时,给出提示Incorrect username or password ( access token ):
第一种方法,脑管理器内进行修改;
[控制面板][账号管理][凭据管理器]/针对不同的windows系统,也可以在[控制面板]直接搜索[凭据管理器]
[windows凭据]--> 普通凭据内的gitee 的下拉框打开进行编辑;
第二种解决问题方式:
添加了生产SSH 公钥秘钥,也有可能出现error[当前公钥已被他人使用,请重新生成 (SSH Key 不允许重复添加) ];若是如此,则删除掉上述文件内的文件,重新生成。
私钥id_rsa
公钥id_rsa.pub
- 添加公钥id_rsa.pub 在平台上,例如gitHub,gitLab,gitee 等多种平台。
- 私钥id_rsa 在本地;使用命令:ssh -T git@gitee.com 回车 ,yes 添加SSH 信任列表,
git 上推程序出无法连接远程库 提示错例如:request authorize server: curl error: Couldn't resolve host name
原因:主机无法解析github.com/Gitee.com
解决方法:ping github.com/Gitee.com
显示结果:
删除远程分支:git push origin :branch name
当中,你需要注意的是 (注意origin后面有一个空格。
由于没有配置信任的服务器HTTPS验证。默认,cURL被设为不信任任何CAs,就是说,它不信任任何服务器验证,解决指令git config --global http.sslVerify false
.删除.git文件夹
在本地仓库的目录下调用命令行删除根目录下的.git文件夹,输入
find . -name ".git" | xargs rm -Rf # OR rm -rf .git
rm -rf .git
强制覆盖本地数据
git fetch --all //只是下载代码到本地,不进行合并操作
git reset --hard origin/master //把HEAD指向最新下载的版本
error: pack-objects died of signal 9
解决方法是 git config --global pack.windowMemory "32m"
过滤当前目录的的log文件夹,结果其他地方的log文件夹也被过滤了
解决:指明当前文件夹,改为:/log