git学习笔记
之前使用Git,都是使用SourceTree。因为SourceTree升级到一个版本,提交代码更新代码都非常慢。
后来尝试使用命令行,记录一下学习内容。
Git命令总结
1. 初始化一个Git仓库
[git init命令]
git新建一个空的仓库,当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库。
2. 将文件添加到仓库
[git add命令]
git add readme.txt 将readme.txt文件添加到仓库
3. 把文件提交到仓库
[git commit命令]
git commit -m “提交readme.txt”
说明: -m 后面输入本次提交的说明,可以输入任意内容
4. 新建分支
[git branch ]
新建本地分支,但目前依旧在原来分支
5. 切换分支
[git checkout v2.2.0]
切换分支到v2.2.0
6. 查看分支
[git branch -a]
查看本地和远程所有分支
[git branch -r]
查看远程所有分支
[git branch]
查看本地所有分支
7. 删除分支
[git branch -d ]
删除本地分支
[git branch -d -r ]
删除远程分支,其中为本地分支名,删除后,还要推送到服务器上才行,即git push origin :
8. 查看远程仓库
[git remote]
如果想查看已经配置的远程仓库服务器,可以运行git remote命令。
[git remote -v]
指定选项-v,会显示需要读写远程仓库使用的Git保存的简写与其对应的URL。
9. 查看仓库当前状态
[git status]
查看当前仓库状态
10. 查看历史记录
[git log命令]
查看git提交记录,包括commit id,Author,Date等信息。如果想退出,可点击Q。
11. 查看修改内容
[git diff命令]
git diff readme.txt
查看readme.txt修改内容
12. 回到上一个版本
[git reset命令]
git reset --hard HEAD^
- git cherry-pick
git cherry-pick 可以对某个分支中一个或几个commts进行操作。
git cherry-pick
例如:git cherry-pick 27f684f
执行完cherry-pick,将会生成一个新的commit,这个新的提交的哈希值和原来的不同,但标识名是一样的。
如果顺利,就会正常提交。
如果在cherry-pick的过程中出现了冲突,手动解决冲突。
- 如何查看commit id和 short commit id?
获取完整commit id(如:27f684f3e9926d16f0fca097addb568d5d5f7c46)
git rev-parse HEAD
获取short commit id(如:27f684f)
git rev-parse --short HEAD
- 查看git提交状态
[git status]
查看git提交状态(也可以查看哪些文件出现冲突)
- 本地修改的文件提交到git仓库需要哪几个命令?
- git add 命令
- git commit -m ‘提交文件描述’
- git push -u origin master
- modified文件如何回滚到修改前?
例子:通过git status命令查看,如下:
modified : .android/Flutter/build.gradle
命令如下:git checkout -- .android/Flutter/build.gradle
【说明】将.android/Flutter/build.gradle文件revert到修改前
- 如何通过git命令将未跟踪的修改文件删除?
例子:通过git status命令查看日志,如下:
untracked files:
(use "git add <file>..." to include in what will be commited)
.android/Flutter/src/main/java/io/flutter/
执行命令:git clean fd
【说明】连untracked 的目录也一起删除
- git push提交失败,错误提示’remote: HTTP Basic: Access denied’
1、输入命令:git config --system --unset credential.helper重置账号和密码;
2、执行git push推送代码;
参考:https://stackoverflow.com/questions/47860772/gitlab-remote-http-basic-access-denied-and-fatal-authentication
- 回滚代码操作步骤(谨慎操作)
- 首先,git pull/git fetch获取最新代码;
- 选择git提交记录的上一条记录,点击Reset Current Branch To Here;【注意不要选择自己提交的上一条记录,这样容易将其他人提交的记录也回滚了】
- git push --force 强制提交
- 修改一个文件,然后push到远程仓库,就回滚到上一次提交了。
- git patch命令
git patch 将提交打成一个包
命令如下:
git format-patch commit id (commit id是git 提交的commit id),在git目录生成了.patch文件,打开可查看本地commit修改之处。
- git commit撤销
- git shelve changes
最近使用Android Studio发现了一个Shelves Changes…,将修改文件暂存在Shelf选项,在Shelf选项选择一条Changelist,执行Unshelve命令,可以将文件释放放到Local Changes选项中。
参考:
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013743256916071d599b3aed534aaab22a0db6c4e07fd0000
https://gist.github.com/guweigang/9848271