-
git checkout – file1 file2
(丢掉file1和file2的修改,前提是file1和file2都还没有git add) -
git reset HEAD file1 file2
-
git checkout – file1 file2
(丢掉file1和file2的修改,前提是file1和file2都git add,但是没有git commit -m “xxx”) -
git reset HEAD^ file1 file2和git checkout – file1 file2
(丢掉file1和file2的修改,前提是file1和file2都git add,git commit -m “xxx”) -
git status: 查看本次是否修改,以及修改了哪些文件。
-
git diff是查看本次修改内容。(注意这个和上述那个都是未add之前)。
-
git log(查看commit信息)
-
git reset --hard xxx(commit ID)回退到某个版本
注意这里的commit ID不用写全部,写一部分就行,比如写前四位。如果找不到commit ID,可以通过git reflog查看所有的commit ID。 -
本地修改,远端修改
本地修改后先git add xxx; git commit - “xxx”
git fetch origin master //拉去远端origin主机上的master分支下载到本地的分支上。
git diff origin/master 比较本地分支和远端分支差异
git merge origin/master 合并到远端分支上,如果存在冲突
则解决冲突后,git add xxx; git commit -m xxx(冲突的文件)
再git merge origin/master 。
之后,git push. -
本地创建分支,远端删除test1,本地修改test3
(base) Lixg:learngit LiXingguang$ git checkout -b dev //本地创建dev分支,如果是切换分支,则执行(git checkout 分支名)
Switched to a new branch ‘dev’
(base) Lixg:learngit lixg$ vim test3
(base) Lixg:learngit lixg$ git add test3
(base) Lixg:learngit lixg$ git commit -m “modify test3”
[dev dab8abb] modify test3
1 file changed, 1 insertion(+), 1 deletion(-)
(base) Lixg:learngit lixg$ git fetch origin master //拉去远端的origin/master分支
From github.com:Greatandy/Test2
- branch master -> FETCH_HEAD
(base) Lixg:learngit lixg$ git diff origin/master //比较本地所在分支(dev)和远端分支差异
diff --git a/test1 b/test1 //第一个文件差异
new file mode 100644
index 0000000…7185c1a
— /dev/null //远端删除该文件
+++ b/test1 //本地还有
@@ -0,0 +1 @@
+add a test1 //本地test1文件内容
diff --git a/test3 b/test3 //第二个差异
index 1b6eb40…33913cf 100644 //远端文件内容
— a/test3
+++ b/test3
@@ -1 +1 @@ //本地文件内容
-add a test3 file
+add a test3
- 切回master分支 git checkout master
git merge dev
git branch -d dev
git push
参考文献:
廖雪峰Git使用
git rebase使用