赞
踩
该篇文章主要总结在平时工作中使用 Git 最常见的几种情况。
git status
示例:
远程仓库现有 1.txt
文件,拉取仓库最新的文件后,并创建一个文件,在查看状态:
Administrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (develop) $ git pull Already up to date. Administrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (develop) $ ll total 0 -rw-r--r-- 1 Administrator 197121 0 Nov 29 13:28 1.txt Administrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (develop) $ touch 2.txt Administrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (develop) $ git status On branch develop Your branch is up to date with 'origin/develop'. Untracked files: (use "git add <file>..." to include in what will be committed) 2.txt nothing added to commit but untracked files present (use "git add" to track)
git log
git log --oneline 简洁的版本
Administrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (develop)
$ git log --oneline
c4fdd63 (HEAD -> develop, origin/develop) add 2.txt 13.40
93b93f0 add 1.txt
3462cd9 delete four
bf0576c a b txt
9e29d0e rm
90627c2 test
495b54d 2.txt
6708865 test
262d5a5 test
2c1cfc6 test
fdef982 (origin/hotfix, origin/feature) Initial commit
git blame 文件名
示例:
Administrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (develop)
$ git blame 2.txt
00000000 (Not Committed Yet 2022-11-29 13:45:07 +0800 1) 123
00000000 (Not Committed Yet 2022-11-29 13:45:07 +0800 2) 456
git checkout -- 文件名
git reset HEAD
方法一:不保留本地修改
//向前回退一个版本
git reset --hard HEAD^
//向前回退两个版本,以此类推
git reset --hard HEAD^^
方法二:不保留本地修改
//向前回退一个版本
git reset --hard HEAD~1
//向前回退两个版本,以此类推
git reset --hard HEAD~2
方法三:保留本地修改
//查看上次提交号
git log --oneline
//根据提交号进行撤销
git reset --hard 版本号
其中方法一和方法二不保留本地的修改(多一步 git checkout – 文件名 操作),方法三能够撤销提交并且保留本地的修改。
初始状态:开发者1 和开发者 2本地以及远程仓库只有 a.txt 和 b.txt 两个文件。
开发者1 | 开发者2 | 时间点 |
---|---|---|
git pull | git pull | 09:01 |
touch c.txt | 09:02 | |
git add . | 09:03 | |
git commit -m ‘add c.txt’ | 09:04 | |
git push | 09:05 | |
vim a.txt | 09:06 | |
git add . | 09:07 | |
git commit -m ‘update a.txt’ | 09:08 | |
git push | 09:09 | |
报错,出现了冲突 | 09:09 | |
git pull | 09:10 | |
git push | 09:11 | |
推送成功 | 09:11 |
总结:当不是本地和远程仓库同一个文件产生冲突,push 之前 使用 git pull 拉取下即可。
初始状态:开发者1 和开发者 2本地以及远程仓库只有 a.txt 这个文件。
开发者1 | 开发者2 | 时间点 |
---|---|---|
git pull | git pull | 09:01 |
vim a.txt | 09:02 | |
git add . | 09:03 | |
git commit -m ‘update 1.txt’ | 09:04 | |
git push | 09:05 | |
vim a.txt | 09:06 | |
git add . | 09:07 | |
git commit -m ‘update a.txt’ | 09:08 | |
git push | 09:09 | |
推送报错,出现了冲突 | 09:09 | |
git pull | 09:10 | |
拉取报错,提示出现了冲突 | 09:10 | |
git status | 09:11 | |
手动解决冲突文件(要么是手动合并要么是忽略自己的修改) | 09:12 | |
解决完后,无需重新拉取,将这次修改再次提交 | 09:12 | |
git add . | 09:13 | |
git commit -m ‘solve conflict a.txt’ | 09:14 | |
git push | 09:15 |
提示:git stash,可忽略自己的修改。
远程仓库默认五个分支:master、release、develop、feature、hotfix
git branch -r
示例:
Administrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (master)
$ git branch -r
origin/HEAD -> origin/master
origin/develop
origin/feature
origin/hotfix
origin/master
origin/release
git branch
示例:
Administrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (master)
$ git branch
* master
git branch -a
示例:
Administrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (master)
$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/develop
remotes/origin/feature
remotes/origin/hotfix
remotes/origin/master
remotes/origin/release
git branch 新分支名称
示例:
Administrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (master)
$ git branch mybranch
Administrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (master)
$ git branch -a
* master
mybranch
remotes/origin/HEAD -> origin/master
remotes/origin/develop
remotes/origin/feature
remotes/origin/hotfix
remotes/origin/master
remotes/origin/release
git checkout 已有分支名称
git checkout -b 新分支名称
git pull origin 远程分支名称:本地分支名称
git pull origin 远程分支名称
git push origin 分支名称
git push --set-upstream origin 新分支名称
该句命令可以将本地新建的分支上传到远程仓库,使远程仓库有了该分支。
git branch -d 分支名称
示例:
Administrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (master)
$ git branch -d mybranch
error: The branch 'mybranch' is not fully merged.
If you are sure you want to delete it, run 'git branch -D mybranch'.
删除的时候报错 The branch ‘mybranch’ is not fully merged(未完全合并分支),可使用以下命令:
git branch -D 分支名称
git push origin :远程分支名称
示例:
Administrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (master)
$ git push origin :mybranch
remote: Powered by GITEE.COM [GNK-6.4]
To gitee.com:tmqqsir/demo.git
- [deleted] mybranch
newbranch
上git add .
git commit -m '完成某个功能'
git push -u origin newbranch
git checkout master
3、拉取 master 分支最新代码
git pull origin master
4、将 newbranch
分支合并到 master
分支上
git merge newbranch
如果合并的时候出现冲突,执行以下命令取消合并:
git merge --abort:
然后查看状态解决冲突:
git status
最后一步,push到远程仓库:
git push origin master
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。