首页 > 代码库 > Git 遇到的坑

Git 遇到的坑

1. 无法切换分支

$ git add .

$ git checkout function

error: Your local changes to the following files would be overwritten by checkout:
    SwiftLearn/ViewController.swift
Please, commit your changes or stash them before you can switch branches.
Aborting

原因:ViewController.swift 中的文件提交后,commit 没有提交成功,需要提交成功,才能切换到其他支。

1 $  git commit -m "clear viewDidLoad"
2 
3 $ git checkout function
4 
5 
6 M    SwiftLearn.xcodeproj/project.pbxproj
7 M    SwiftLearn.xcodeproj/project.xcworkspace/xcuserdata/huanggang.xcuserdatad/UserInterfaceState.xcuserstate
8 Switched to branch function

 

  1.1 git add 几种区别

1      git add -A  提交所有变化
2 
3      git add -u  提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)
4 
5       git add .  提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件

注意:git init后新加的文件,先要git add才能纳入git版本库管理,否则新加文件为未跟踪状态。即:与 git 管理没用,不搭关系

  1.2 git commit 区别

 

 1 //    对于已入版本库并且改动的文件,可以使用git commit -am "message",新文件需要先入版本库。
 2 //    也就是第一次你要 git add 将文件纳入版本库,后来再要修改不用 git add 了,直接用 git commit -am “123” 就可以了,将 git add省去了
 3 
 4 //   将一个文件 git add . 后,在对它修改
 5 
 6 //    第一种方法
 7 $    git commit -am "message"
 8 
 9 //    第二种方法
10 
11 $    git add .
12 
13 $    git commit -m "message"    

 

2. 解决冲突后,合并遇到问题

$ git merge function


Auto-merging 

SwiftLearn.xcodeproj/project.xcworkspace/xcuserdata/huanggang.xcuserdatad/UserInterfaceState.xcuserstate

CONFLICT (content): Merge conflict in 

SwiftLearn.xcodeproj/project.xcworkspace/xcuserdata/huanggang.xcuserdatad/UserInterfaceState.xcuserstate

Automatic merge failed; fix conflicts and then commit the result.

$ git branch -D function


//   当参数是 -d 时,对未合并的分支进行合并失败 

$ git branch -d feature-vulcan
error: The branch feature-vulcan is not fully merged.
If you are sure you want to delete it, run git branch -D feature-vulcan.
//   销毁失败。Git友情提醒,feature-vulcan分支还没有被合并,如果删除,将丢失掉修改,如果要强行删除,需要使用命令git branch -D feature-vulcan。

//   现在我们强行删除:

$ git branch -D feature-vulcan
Deleted branch feature-vulcan (was 756d4af).     

 

Git 遇到的坑