再谈Git

版权声明:本文为博主原创文章,转载请标明出处和链接! https://blog.csdn.net/junmoxi/article/details/86290207

初级的就不说了,下面记录一些常用且稍微高级点的操作

git的管理流程

工作区 ——> git add ——> Index[索引][跟踪区] ——> git commit ——> HEAD[快照]

当执行git add 后其实就是将更改的文件放入到暂存区中,当执行git commit时就是将暂存区的内容提交到当前分支

  • HEAD快照是保存你最后一次commit的内容
  • git push 是将暂存区[快照]的内容push 上去

1. 关联

  • 1.1 关联仓库

git remote add origin 仓库地址

你可以同时关联其他的仓库(也包括gitee和gitlab)

git remote add origin-2 仓库地址

这样你push的时候

git push origin-2 master

2. 分支

2.1 只创建一个分支

git branch fix-1

2.2 创建分支并切换此分支

git checkout -b feat-1

2.3 切换分支

git checkout master

2.4 查看所有分支

git branch -v

2.5 删除分支

git branch -d feat-1

3. 临时暂存区

3.1 将更改放到临时暂存区

git stash

3.2 将更改从临时暂存区取出

git stash pop

3.3 查看临时暂存区内容

git stash list

3.4 恢复指定临时暂存区

git stash apply stash@{id}

4. 合并冲突

1.更新代码 git fetch
2.合并分支 git rebase origin/develop //将develop分支与此分支合并
3.会进入合并分支,当有CONFLICT:Merge file.txt, 手动去修改此文件
4.修改之后添加冲突文件 git add file.txt
5.继续合并 git rebase --continue, 如果有错误继续 执行 3 4 步骤
6.当分支名变成你的分支名则表示合并完成
7.查看当前状态 git status
8.如果状态都为已暂存,则可以执行 git push origin 分支名 进行提交

push之前忘记git pull

出现

! [rejected]  master -> master (fetch first)

可以使用下面这个命令

git pull --rebase origin master

这个命令是先取消commit记录,并且把它们临时 保存为补丁(patch)(这些补丁放到”.git/rebase”目录中),之后同步远程库到本地,最后合并补丁到本地库之中。

然后再直接进行push就可以了

5. 回滚

5.1 撤销上一次git add的内容

git reset HEAD

只撤销某个文件

git reset HEAD 文件路径/文件名

5.2 撤销上一次git commit

  1. 先查看日志,记录commit id
git log
  1. 恢复到指定commit
git reset commit_id

5.3 修改上一次commit

git commit --amend

5.4 撤销git commit 和 git add 以及 工作区更新的内容

git reset --hard HEAD~ 

5.5 删除远程分支中某个文件

这个只是让此文件不受版本控制了,而本地是不会删除它的

git rm –-cached 文件路径/文件名

5.6 回滚到指定版本

  1. 查看日志拿到commitid
git log
  1. 恢复到指定版本
git reset --hard commit_id

猜你喜欢

转载自blog.csdn.net/junmoxi/article/details/86290207