练习Git 命令行
新建仓库有两种方式
- 新建本地仓库 git init
- 克隆远程仓库(常用) git clone url
- 创建ssh-key ssh-keygen -t rsa -C "youremail@example.com"
- 在创建时 问询会显示创建的目录 要求输入一个 第一次建立连接需要的秘密,密码可为空
- 在创建的 .ssh 目录下 以 .pub 结尾的文件就是公钥 , 在github或gitlab中输入sshkey就可以使用ssh连接了
- 第一次连接后 问询是否把仓库地址添加到可信任列表 加入可信任列表后 可避免下次连接输入密码
- 当前用户的配置 cat ~/.gitconfig
- 快速查看配置 git config --list
- 修改 git config --global key value
- 添加代码简写 git config --global alias.co checkout
- git checkout 等价于 git co
- 拉取代码 git fetch
- 拉取代码并与本地合并 git pull
- 代码提交到跟踪 git add file
- 代码加入缓存区 git add file
- 将冲突文件标记为解决状态 git add file
- 将缓存区文件回退 git reset HEAD file
- 将缓存区文件提交 git commit -m '修改描述'
- 补充提交,本次提交是对上次提交的补充和修改 git commit --amend
- 添加到缓冲区并提交 git commit -am ''
- 删除提交到缓冲区的文件 git rm file
- 取消跟踪缓冲区的文件,并将修改从缓冲区删除 git rm file --cache
- 修改以跟踪的文件名称 git mv file_1 file_2
- 交互式管理代码 git add -i
- 删除本地修改 git checkout -- file
在某一个提交上打标签 以表示这个提交比较重要
- 查看所有 git tag
- 添加 git tag -a tagname -m '提示信息'
- 对以前的提交追加标签 git tag -a tagname commit-code
- 将标签发到远端 git push origin tagname/--tags(全部)
- 检出标签 git checkout -b 分支名称 标签名称
- 展示标签内容 git show tagname
- 搜索 git tag -l ‘搜索’
- 查看本地远程仓库 git remote -v
- 添加远程仓库 git remote add shortname url
- 查看本地分支 git branch
- 新建分支 (根据当前分支复制) git branch branch-name
- 新建分支 (根据当前分支复制) 并进入 git checkout -b branch-name
- 新建远程分支 git checkout -b branch-name origin/origin-branch
- 拉取代码的同时新建本地分支 git pull url remote-branch:local-branch
- 合并分支(将name分支合并到当前分支) git merge name
- 删除分支 git branch -d name
- 强制删除分支 git branch -D name
- 强行制定本地分支与远端分支的对应关系 git branch --set-upstream-to=origin/dev dev
- 重置代码 git reset --hard HEAD
- 查看冲突 git diff
合并commit有两种方式: 1.在开发分支合并commit
- git rebase -i origin/master
- 在打开的文件中 可修改commit code前方的pick,将pick改为s,必须保留第一个pick
- 保存之后,会根据时间来从前往后合并两个commit
- 有冲突时,需要手动解决冲突,然后git rebase --continue
- 如果中途执行有问题,可主动退出 git rebase --abort
2.在主分支合并
- git merge dev
- 合并之后 执行 git reset HEAD~数字 看你想合并几个commit
- 撤销了commit之后,文件的修改并没有保存
- 这时 可以重新提交一个commit 来达到合并commit的作用
- 查看日志 git log
- 查看最近的N条记录 git log -N
- 查看分支图 git log --graph
- 查看简单历史 git rellog
- 查看所有人的cmimit记录 git shortlog
- 显示本地的引用日志 git reflog