加载中...

git命令学习


  • git一键三连
git add .
git commit -m "commit code"
git push
  • 查看本地库状态
git status
  • 添加文件到暂存区
git add <file>
  • 删除暂存区文件
git rm --cached <file>
  • 将暂存区的文件提交到本地库
# "first commit" 提交信息
git commit -m "first commit" <file>
  • 提交本地分支到远程库
git push 仓库别名/仓库地址 分支名
  • 查看历史版本
# 查看历史版本日志
git reflog
# 查看历史版本详细日志
git log
  • 版本穿梭
# 版本回退
git reflog # 查看回退的版本号
git reset --hard 版本号
  • 查看分支
git branch -v
  • 创建分支
git branch 分支名
  • 切换分支
git checkout 分支名
  • 合并分支(主分支没修改)
# 站在主要的的分支上操作要合并的分支
git merge 要合并的分支名
  • 分支冲突
    • 合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git 无法替 我们决定使用哪一个。必须人为决定新代码内容。
    • 冲突产生的表现:后面状态为 (master|MERGING)
  • 解决冲突
    • 特殊符号:<<<<<<< HEAD 当前分支的代码 =======合并过来的代码 >>>>>>> hot-fix
    • 手动修改文件
    • 添加到暂存区
    • 执行提交(注意:此时使用git commit命令时不能带文件名
# 查看状态  (master|MERGING)
git status
# 添加到暂存区
git add <file>
# 执行提交到本地库
git commit -m "merge conflict" 
  • 查看当前所有远程库地址别名
git remote -v
  • 创建远程库别名
git remote add 别名 远程库https地址
  • 提交本地分支到远程库
git push 仓库别名/仓库地址 分支名
  • 拉取远程库代码到本地
git pull 仓库别名/仓库地址 分支名
  • 克隆远程库到本地
  • clone会做如下操作
    • 拉取代码
    • 初始化本地库
    • 创建别名
git clone https仓库地址
  • 若下载分支的话需要加 -b  + 分支名称 + 下载地址
$ git clone -b backup git@github.com:shaoshaossm/shaoshaossm.github.io.git

团队协作

跨团队协作

团队协作

添加团队成员

发送邀请

跨团队协作

  • 非本团队的人fork项目到自己的本地
  • 对项目文件进行修改
  • 点击pull request,单击new pull request

new pull request

create pull request

create pull request
merge pull request
在这里插入图片描述
confirm merge

错误解决

  • git push 报错提交不上去
$ git push
To https://github.com/eddiekao/dummy-git.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://github.com/eddiekao/dummy-git.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first 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.

这段讯息的意思是线上版本的内容比你电脑里这份还要新,所以Git 不让你推上去。

解决办法

  • 先拉去线上版本的回来更新再推一次
$ git pull --rebase
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 1), reused 3 (delta 1), pack-reused 0
Unpacking objects: 100% (3/3), done.
From https://github.com/eddiekao/dummy-git
   37aaef6..bab4d89  master     -> origin/master
First, rewinding head to replay your work on top of it...
Applying: update index

这里加了 --rebase 参数是表示「内容抓下来之后请使用Rebase 方式合并」,当然你想用一般的合并方式也没问题。合并如果没发生冲突,接着应该就可以顺利往上推了。

  • 将本地的强制推送到线上
$ git push -f
Counting objects: 19, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (17/17), done.
Writing objects: 100% (19/19), 2.16 KiB | 738.00 KiB/s, done.
Total 19 (delta 6), reused 0 (delta 0)
remote: Resolving deltas: 100% (6/6), done.
To https://github.com/eddiekao/dummy-git.git
 + 6bf3967...c4ea775 master -> master (forced update)

参考文章:https://gitbook.tw/chapters/github/fail-to-push


文章作者: shaoshaossm
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 shaoshaossm !
评论
  目录