之前使用Git,都是使用SourceTree。因为SourceTree升级到一个版本,提交代码更新代码都非常慢。
后来尝试使用命令行,记录一下学习内容。
初始化一个Git仓库
[git init命令]
git新建一个空的仓库,当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库。
将文件添加到仓库
[git add命令]
git add readme.txt 将readme.txt文件添加到仓库
**把文件提交到仓库 **
[git commit命令]
git commit -m “提交readme.txt”
说明: -m 后面输入本次提交的说明,可以输入任意内容
**新建分支 **
[git branch ]
新建本地分支,但目前依旧在原来分支
**切换分支 **
[git checkout v2.2.0]
切换分支到v2.2.0
**查看分支 **
[git branch -a]
查看本地和远程所有分支
[git branch -r]
查看远程所有分支
[git branch]
查看本地所有分支
**删除分支 **
[git branch -d ]
删除本地分支
[git branch -d -r ]
删除远程分支,其中为本地分支名,删除后,还要推送到服务器上才行,即git push origin :
**查看远程仓库 **
[git remote]
如果想查看已经配置的远程仓库服务器,可以运行git remote命令。
[git remote -v]
指定选项-v,会显示需要读写远程仓库使用的Git保存的简写与其对应的URL。
**查看仓库当前状态 **
[git status]
查看当前仓库状态
**查看历史记录 **
[git log命令]
查看git提交记录,包括commit id,Author,Date等信息。如果想退出,可点击Q。
**查看修改内容 **
[git diff命令]
git diff readme.txt
查看readme.txt修改内容
**回到上一个版本 **
[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仓库需要哪几个命令?
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 ..." 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 patch命令
git patch 将提交打成一个包
命令如下:
git format-patch commit id (commit id是git 提交的commit id),在git目录生成了.patch文件,打开可查看本地commit修改之处。
参考:
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013743256916071d599b3aed534aaab22a0db6c4e07fd0000
https://gist.github.com/guweigang/9848271