Git相关命令以及VS Code解决冲突

4,211 阅读1分钟

在vs code中有两种方法解决冲突,方法一vs code自带的git图形工具,方法二用git命令

方法一vs code自带的git图形工具

信息提示

这里是拉取操作git pull,提示以下信息

$ git pull
error: Your local changes to the following files would be overwritten by merge:
        src/pages/Index/index.jsx
Please commit your changes or stash them before you merge.
Aborting
Updating a7d99cf..1d0ddbc

选择冲突文件,贮存本地

选择文件src/pages/Index/index.jsx

image.png

拉取线上文件,更新至本地目录(这时候本地项目会与线上同步)

git pull --tags origin master

选择项目,弹出贮存

image.png

解决冲突文件

image.png

添加文件到暂存区(Stage)后就正常提交

image.png

方法二用git命令

Git命令解决冲突

git stash save "xxxxxx"
git pull
git stash pop
git add .
git commit -m "xxxxxx"

Git常见操作

创建仓库命令

git init初始化仓库

git clone拷贝一份远程仓库

提交与修改

git status查看仓库当前的状态,显示有变更的文件

$ git status

On branch master
Your branch is behind 'origin/master' by 1 commit, and can be fast-forwarded.
  (use "git pull" to update your local branch)

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   src/pages/Index/index.jsx

no changes added to commit (use "git add" and/or "git commit -a")

git add 添加文件到仓库暂存区(Stage)

$ git status   //先查看仓库当前的状态
On branch master
Your branch is up to date with 'origin/master'.

Unmerged paths:
  (use "git reset HEAD <file>..." to unstage)
  (use "git add <file>..." to mark resolution)

        both modified:   src/pages/Index/index.jsx

no changes added to commit (use "git add" and/or "git commit -a")

$ git add .             // 后面的‘.’,表示添加所有改变的文件

git diff比较文件的不同,即工作区和暂存区的差异

$ git diff
diff --git a/src/pages/Index/index.jsx b/src/pages/Index/index.jsx
index 769cbef..d298f39 100644
--- a/src/pages/Index/index.jsx
+++ b/src/pages/Index/index.jsx
@@ -44,6 +44,9 @@ export default class xxxx extends xxxx {
                 <xxx hidden={xxxx/> */}
                 <xxx xxx={xxx} />
             </div>
+
+
+


         )

git commit提交暂存区到本地仓库。

$ git commit -m "change index.jsx file"

[master 93ad723] change index.jsx file
 1 file changed, 1 insertion(+)

git stash save执行存储时,添加备注,方便查找,只有git stash也可以的,但查找时不方便识别

$ git stash save "shash index.jsx file"
Saved working directory and index state On master: shash index.jsx file

git stash list查看stash了哪些存储

$ git stash list
stash@{0}: On master: shash index.jsx file
stash@{1}: On master: index.jsx

git stash show 显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个 git stash show stash@{1}

git stash apply 把stash的内容恢复,恢复后,stash内容并不删除,需要使用命令git stash drop来删除,默认使用第一个存储,即stash@{0},如果要使用其他的git stash apply stash@{$num} , 比如第二个:git stash apply stash@{1}

$ git stash apply
Auto-merging src/pages/Index/index.jsx
CONFLICT (content): Merge conflict in src/pages/Index/index.jsx

git stash pop 把stash的内容恢复的同时把stash内容也删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令:git stash pop stash@{$num} ,比如应用并删除第二个:git stash pop stash@{1}

git stash drop stash@{$num}丢弃stash@{$num}存储,从列表中删除这个存储

git stash clear删除所有缓存的stash

远程操作

git pull下载远程代码并合并

$ git pull
Updating a7d99cf..1d0ddbc
Fast-forward
 src/component/tab/index.jsx | 80 +++++++++++++++++++++++++--------------------
 src/pages/Index/index.jsx   | 26 ++++++++++++---
 2 files changed, 66 insertions(+), 40 deletions(-)

git fetch从远程获取代码库

git push上传远程代码

$ git push
Enumerating objects: 11, done.
Counting objects: 100% (11/11), done.
Delta compression using up to 8 threads.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 599 bytes | 599.00 KiB/s, done.
Total 6 (delta 3), reused 0 (delta 0)
To http://xxxxxx.com/xxx.git
   1d0ddbc..93ad723  master -> master