常用git操作备忘
对常用指令进行总结,方便以后遇到相同情况时查阅。
1 撤销与回退相关
1.1 修正最近的提交消息
情景 :在最近的一次提交( git commit
)中输入的信息有误,并且这次提交没有被推送( git push
)到远程仓库。
方法 : git commit --amend
或 git commit --amend -m "correct_message"
说明 : git commit --amend
会使用一个新的提交更新并替换最近的一次提交,如果有在临时区域(staged)的修改,也会合并提交;如果有新的提交信息,则会一并提交。
1.2 撤销本地变更
情景 :当无意中修改了一个文件,想要回退这个文件的修改时。
方法 : git checkout -- <filename>
说明 :这条指令会把该文件回退到某个git记录中的版本,git默认会回退到 HEAD
版本。
1.3 重置本地修改
情景 :已经进行了多次提交,但是没有推送到版本库中,希望撤销这些提交。
方法 : git reset <last good SHA>
或 git reset --hard <last good SHA>
说明 : git reset
会把本地代码恢复到没有提交( git commit
)的状态,做出的修改会保留。 git reset --hard
会把这些修改丢弃掉。
1.4 恢复被重置的本地修改
情景 :在按照1.3中操作后,想恢复重置以前的状态。
方法 : git reflog
后执行 git reset
或 git checkout
说明 : git reflog
会呈现所有提交过的历史,是一个十分实用的功能。
2 分支操作相关
2.1 创建一个本地分支并推送到远端
方法 :
git branch branch_name
git push origin branch_name
2.2 在本地创建一个远程分支
方法 :
git fetch origin
git checkout -b branch_name origin/branch_name
2.3 下载远程分支到本地
在第一次下载远程分支时,创建与远程分支同名的本地分支,并跟踪(track)到远程分支。
方法 :
git checkout -t origin/branch_name
2.4 在分支上进行进度迁移
情景 : 进行了几次提交后,发现自己正在错误的分支上干活。
方法 :
git branch feature
git reset --hard origin/master
git checkout feature
原理 : 使用feature分支复制了当前分支,将当前分支回退到初始状态,在feature分支上接着干活。
3 git submodule 相关操作
3.1 向当前repo中增加一个submodule
git submoudle add <module url> <local path>
3.2 初始化submodule
在将一个具有submodule的repo拉取到本地以后需要对submodule进行初始化
git submodule init
3.3 更新submodule
在开发中可以直接进入submodule的目录对每一个submodule执行更新操作,也可以使用命令统一完成submodule的更新操作。
git submodule update
3.4 删掉submodule
对于不需要的submodule,可以将其删掉。
git submodule rm <local/path>
4 终端配置
使用命令简称方便操作,可以将以下配置加入到 .bashrc
中。
# git related
alias g='git status --short -b'
alias ga='git add'
alias gb='git branch'
alias gc='git commit -m'
alias gd='git diff'
alias gco='git checkout'
alias gps='git push'
alias gpl='git pull'
(全文完)
5 缓存登录密码
3.1 保存登录密码
当我们不想重复输入密码时可以将密码保存
3.2 删除保存的密码
当需要更新密码时,需要从系统中删掉旧的密码否则