天行健,君子以自强不息;地势坤,君子以厚德载物。
每个人都有惰性,但不断学习是好好生活的根本,共勉!
文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。
Git相关文章参考:
Git学习和使用指南详细篇
Git学习和使用指南简单篇
一、配置相关的命令
1. 查看Git的配置信息
1.1 查看Git配置文件及文件位置
查看配置文件及所在位置的命令
git config --list --show-origin
1.2 查看Git配置参数列表
查看Git配置参数列表,如账号名邮箱等的参数内容
git config --list
2. 配置Git的用户信息
2.1 全局配置用户信息
在机器的整个环境下所有项目都会使用这个用户信息提交代码
用户名配置,如寒山
git config --global user.name "寒山"
邮箱配置,如hanshan@163.com
git config --global user.email hanshan@163.com
2.2 特定项目配置用户信息
在某个项目下想使用单独的用户信息提交代码,可使用不带–global的命令配置用户信息
某个项目目录下配置用户名
git config user.name "hanshan"
某个项目目录下配置用户邮箱
git config user.email hanshan@163.com
2.3 查看Git单一参数
查看用户名
git config user.name
查看邮箱
git config user.email
等等
3. 配置Git界面颜色
git config --global color.ui true
4. 添加隐藏文件到暂存区
如果想强制添加被忽略的文件,执行时加-f参数强制执行即可
git add -f a.class
检查忽略规则
git check-ignore
5. 配置Git命令别名
当使用git命令时,可以通过配置git命令别名来简写git命令
如git add .可换成git a .
git commit -am"" 可以换成git cm -am""
加--global
是配置全局,不加则只对当前用户
语法如下
git config --global alais.gitNewCommands 'git-origin-commands'
gitNewCommands表示新命令即别名
git-origin-commands表示原命令
6. 删除别名
如何将配置的别名删除
全局配置文件的删除方法:
在.git/config文件中的alais部分是别名的配置参数,删除对应的别名即可
用户配置文件的删除方法:
当前用户的配置文件放在用户目录下的.gitconfig中,删除文件中对应的别名即可
二、Git使用相关命令
1. 克隆clone
先在远程仓库中复制仓库地址
然后使用克隆命令将项目克隆到本地,命令如下
git clone 远程仓库地址
远程项目名称克隆下来后在本地的文件夹名称如果想在克隆时就修改,可通过命令后加文件夹名称指定,如
git clone 远程仓库地址 项目别名
2. 初始化版本库init
初始化版本库
git init
指定默认分支初始化版本库
git init -b <branch>
3. 添加文件到版本库add
添加全部文件
git add .
添加某个文件
git add <file>
添加某些文件
git add <file1> <file2> <file3> ...
4. 提交到版本库commit
将本地文件提交到版本库中
git commit -m "提交时的描述信息"
5. 推送到远程
git push origin <branch>
6. 从远程拉取到本地
前提是已经建立连接
git pull
7. 查看远程仓库
查看远程仓库名
git <remote>
查看远程仓库详细信息
git <remote> -v
该命令可查看到抓取fetch和推送push的地址,若无推送权限则不会显示push地址
8. 查看版本库状态
查看git仓库当前状态变化
git status
具体变化查看命令
git diff
9. 日志查看
git log
git log --pretty=online
10. 回退
git回退到上一个版本的命令
git中用HEAD表示当前版本,HEAD^
表示上一个版本,HEAD^^
表示上上一个版本
上一百个版本使用HEAD~100
表示
回退上一个版本的命令
git reset --hard HEAD^
11. 重置
当回退后想要恢复到最新版本,使用git reset --hard
新版本的commitId
如何查看最新版本的commit id,使用命令
git reflog
找到对应的commitId,然后使用
git reset --hard commitId
进行重置
三、Git版本管理命令
1. 撤销修改
当你提交一次代码到当前分支时,注释信息写错了或者之前add的时候少添加了某个文件,此时想重新操作后再commit,但是第二次commit就会留下一个commit的历史,我不想要这个commit历史
此时就可以用该命令
git commit --amend
执行后不会有上一次commit的描述信息也不会有上次commit的历史,只会看到后面这次的commit信息
2. 取消暂存的文件
当使用add添加文件到暂存区后,发现这个文件并不需要提交,此时想要取消暂存
git reset HEAD file
file
为所要取消暂存的文件,
举例
如取消暂存区文件test01.text
git reset HEAD test01.text
3. 撤销对文件的修改
当你对某个文件做了修改,但是原来的更好,你想恢复,则可用以下命令撤销修改
git checkout --file
使用--
指定文件名,可对该文件的修改进行撤销
对文件的修改撤销之后该文件在本地的所有修改都会消失,无法恢复
git会使用最近提交的版本覆盖掉
4. 删除文件
4.1 删除本地文件
本地文件夹删除文件的方式可以是直接右键删除文件,也可以使用rm命令删除文件
删除文件命令
rm test.txt
4.2 删除暂存区文件
当工作区的文件也就是本地文件夹的文件删除时,如果该文件之前提交到了暂存区,git版本库的暂存区也会知道,此时使用以下命令删除暂存区对应的文件
git rm 文件
然后
git commit -m"rm file"
5. 恢复删除的文件
如果删除错了如何恢复
git checkout --file
使用上述命令恢复对文件的删除,如删了test01.text想要恢复
git checkout --test01.text
注意:
使用该恢复命令的前提是该文件之前提交到版本库过,如果从未提交过则无法使用该命令恢复
四、Git分支的操作命令
1. 查看分支
git branch
带*的是当前分支
2. 创建分支
git branch 分支名
3. 切换分支
git checkout 分支名
4. 创建分支并切换到新建分支
(如新建dev)
git checkout -b dev
5. 合并分支
git merge 分支名
6. 删除分支
git branch -d 分支名
该命令表示删除指定分支
强制删除,谨慎使用
git branch -D 分支名
7. 切换分支switch
为了区分切换分支和撤销修改的命令git checkout <branch>
和git checkout --<file>
在新版本的git中使用switch来实现切换分支
7.1 切换并创建分支
git switch 分支名
7.2 切换到某个分支
git switch -c 分支名
8. 查看分支历史
git log --graph --pretty=online --abbrev-commit
五、现场相关命令
1. 查看现场列表
git stash list
查看的结果中有一个stash的id如stash@{0},id后面会有对应的描述包含了分支的commitId
2. 保存现场
git stash
3. 根据stashId恢复现场
根据stash的id恢复:
git stash apply stashId
4. 删除现场
恢复后需要删除stash,因为不会自动删除
git stash drop stashId
5. 恢复并删除现场
也可以使用pop直接恢复同时删除,也就是相当于执行了上面的两个命令(2和3)
git stash pop stashId
六、转移命令cherry-pick
git cherry-pick的使用:
1. 转移单个提交
以下命令会将分支名对应的最新提交放到当前分支
git cherry-pick 分支名
将一个分支的提交转移到另一个分支
正常我们将一个分支的内容全部转移到另一个分支时直接使用git merge
命令合并即可
当我们只需要将分支的某个提交改动转移到另一个分支时,就可以用git cherry-pick
语法:
git cherry-pick commitId
commitId为提交的Id
2. 转移多个(连续)提交
转移多个提交
git cherry-pick 提交a 提交b
转移某分支的连续提交
如dev的提交有a-b-c-d-e-f-g-h-i
现在将dev分支的d.e.f.g分支都转移到master分支
git cherry-pick c..g
只能c…g不可以g…c,要遵循先后顺序
上面命令用法转移的提交不包含c,如果像包含c如下
git cherry-pick c^..g
该命令会将cdefg转移到分支
4. 解决代码冲突
当执行cherry-pick命令是遇到代码冲突,cherry pick会停下
以下为三种情况,可根据需要选用:
先将冲突代码手动解决,然后
将修改的文件重新加入暂存区
git add 修改的文件
继续执行cherry-pick
git cherry-pick --continue
放弃合并将文件恢复到操作前
git cherry-pick --abort
退出cherry-pick但不回到操作前
git cherry-pick --quit
5. 转移到另一个代码库
git cherry-pick
不仅可以在同一个代码库中操作,还可以将提交转移到另一个代码库
现将另一个代码库添加为远程仓库,如添加远程仓库target
git remote add target 远程仓库地址
将远程仓库抓取到本地
git fetch target
检查从远程仓库转移的提交,获取哈希值
git log target/master
转移提交
git cherry-pick <commitHash>
七、标签相关命令
1. 推送一个本地标签到远程
git push origin <tag-name>
2. 推送全部标签到远程
git push origin --tags
3. 删除一个本地标签
git tag -d <tag-name>
4. 删除一个远程标签
git push origin :refs/tags/<tag-name>
5. 创建一个带描述的标签
git tag -a <tag-name> -m "messages"
6. 创建一个带gpg签名的标签
git tag -s <tag-name> -m "messages"
感谢阅读,祝君暴富!