Git 使用及配置使用
详细可 参考教程:廖雪峰的 Git 教程
0.Git 开发使用流程
1.克隆远程服务$ git clone
2.远程创建分支
3.从远程获取最新的仓库信息 $ git fetch 本地
4.$查看远程仓库 $ git remote
5.本地创建并关联分支 $ git checkout -b [localBranch] origin/[remoteBranch]
6.查看本地分支与远程分支的对应关系 $ git branch -vv
7.本地修改代码
8.提交本地代码 8.1 $ git add . 8.2 git commit -m “描述”
9.修改完成获取最新仓库信息 $ git fetch
10.检查冲突 $ git log - p [localBranch] .. origin/[remoteBranch]
11.将远程分支与本地分支合并 $ git merge origin/[remoteBranch]
12.$推送 localBranch 分支到远端$ git push origin [localBranch]:[remoteBranch]
1.Git 命令
# 提交工作区的代码到暂存区
$ git add readme.txt
# 提交代码到工作区
$ git commit -m "append GPL"
# 版本控制历史记录
$ git log
$ git log --pretty=oneline
# 版本回退,1094a是版本号
$ git reset --hard 1094a
# 命令记录
$ git reflog
# 查看状态
$ git status
# 查看工作区和版本库最新版本的区别
$ git diff HEAD -- readme.txt
# 撤销工作区的修改
$ git checkout -- readme.txt
# 撤销暂存区的修改
git reset HEAD <file>
# 在版本库种删除改文件
$ git rm test.txt
# 撤销工作区的删除
$ git checkout -- test.txt
# 将本地代码推到远端
$ git push origin master
# 创建并切换分支
$ git checkout -b dev
$ git switch -c dev
$ git branch dev
$ git checkout dev
$ git switch master
# 查看当前分支
$ git branch
# 合并 dev 的代码到当前分支
$ git merge dev
# 删除分支
$ git branch -d dev
# 解决冲突的方式:解决冲突文件后,重新提交
# 查看分支的合并情况
$ git log --graph --pretty=oneline --abbrev-commit
# 将工作区未提交的代码,储存
$ git stash
# 查看储存区列表
$ git stash list
# 恢复的储存区内容到工作区,并删除储存区
$ git stash pop
# 恢复的储存区内容到工作区,不删除储存区
$ git stash apply stash@{0}
# 将 commit 复制到另一个分支
git cherry-pick <commit>
# 要查看远程库的信息
$ git remote
# 推送分支
$ git push origin master
# 创建远程的分支到本地
$ git checkout -b dev origin/dev
# 推送前先拉取并合并远程最新的代码
$ git pull
# 将本地分支与远程分支建立链接
$ git branch --set-upstream-to=origin/dev dev
# 将远程分支通过变基的方式,合并到本地
$ git pull origin dev --rebase
# 本地分支间通过变基的方式合并(dev->cur)
$ git rabase dev
2.使用前配置
使用 Git 需配置
git config --global user.name "xxxx"
git config --global user.email "xxxx@foxmail.com"
git config -l #查看 Git 配置
若出现下面的问题
Cloning into 'gitskills'...
Permission denied (publickey).
fatal: Could not read from remote repository.
经过查询是因为没有在本地生成私钥和公钥对,故现在本地生成,然后将生成的公钥配置到的远程ssh。
ssh-keygen -t rsa -C "xxxx@foxmail.com"
可参考 github clone “Permission denied (publickey). fatal: Could not read from remote repository.”
3.开发中的实际运用场景
在 github 上创建一个代码仓库,然后 clone 到本地。
[root@izbp1h8m7n9urnl8cmoth8z learngit] git clone git@github.com:xxxx/test.git
[root@izbp1h8m7n9urnl8cmoth8z learngit] cd test
[root@izbp1h8m7n9urnl8cmoth8z test] git branch
* main
[root@izbp1h8m7n9urnl8cmoth8z test] git fetch
[root@izbp1h8m7n9urnl8cmoth8z test] git checkout -b feature1 origin/feature1
# 修改本地分支
[root@izbp1h8m7n9urnl8cmoth8z test] git add .
[root@izbp1h8m7n9urnl8cmoth8z test] git commit -m "feature1 update1"
[root@izbp1h8m7n9urnl8cmoth8z test] git diff feature1
[root@izbp1h8m7n9urnl8cmoth8z test] git pull
[root@izbp1h8m7n9urnl8cmoth8z test] git push origin feature1
[root@izbp1h8m7n9urnl8cmoth8z test] git log --graph --pretty=oneline --abbrev-commit
如果遇到Cannot update paths and switch to branch 'feature1' at the same time.
的问题。
请参考博客《Git:远程分支----git fetch命令的使用》