• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
LVNING
博客园    首页    新随笔    联系   管理    订阅  订阅

git 操作

git 基础操作如下

Command line instructions

Git global setup / /全局配置
git config --global user.name "lvning"
git config --global user.email "lvning_lifebox@126.com"

ssh-keygen -t rsa -C "lvning_lifebox@126.com"
Create a new repository / /创建仓库
git clone git@gitlab.com:lvning17zxjc/text3.git
cd text3
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
Existing folder / /已有文件,添加到远程库操作 
cd existing_folder
git init
git remote add origin git@gitlab.com:lvning17zxjc/text3.git
git add .
git commit -m "Initial commit"
git push -u origin master
Existing Git repository / /现有Git 存储库,远程推送
cd existing_repo
git remote rename origin old-origin
git remote add origin git@gitlab.com:lvning17zxjc/text3.git
git push -u origin --all
git push -u origin --tags
  • 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 查看远程和本地分支

 强制拉取远程分支所有到本地

git fetch

查看远程仓库的默认分支:如果远程仓库的默认分支是 main 而不是 master,你可以通过以下命令查看远程的默认分支:

git remote show origin

创建 master 分支(如果需要):
如果你希望继续使用 master 作为分支名,并且当前仓库没有 master 分支,你可以创建并切换到一个新的 master 分支:

git checkout -b master

问题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 pull来更新代码的时候,遇到了下面的问题:error: Your local changes to the following files would be overwritten by merge: xxx/xxx/xxx.php Please,
                         commit your changes or stash them before you can merge. Aborting

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

  1. 添加公钥id_rsa.pub 在平台上,例如gitHub,gitLab,gitee 等多种平台。
  2. 私钥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指向最新下载的版本

 

解决 git push 时 error: pack-objects died of signal 9

error: pack-objects died of signal 9

解决方法是  git config --global pack.windowMemory "32m"

过滤当前目录的的log文件夹,结果其他地方的log文件夹也被过滤了

解决:指明当前文件夹,改为:/log

posted @ 2019-02-01 14:41  LVNING  阅读(412)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3