git学习记录
git推荐学习网址
git配置
1.安装git主程序
2.创建git总仓库文件,此文件下放置各仓库
3.生成公钥
ssh-keygen -t rsa -C 秘钥名
然后可以选择公钥文件名。路径:C:\Users\test\.ssh\id_rsa.pub
生成成功后,将公钥内容,复制到github的setting里的ssh模块下的配置里。
使用命令ssh -t git@github.com
,验证是否成功
git常见指令
git clone
拉取一个本地仓库没有的文件。
git pull
拉取远程仓库的最新软件版本
git push github的ssh链接
将上传本地仓库至github。
git status
查看当前本地仓库新的未上传至仓库记录本的文件。
On branch main
Your branch is up to date with 'origin/main'.
Untracked files:
(use "git add <file>..." to include in what will be committed)
mathmatic.md
git add 文件及路径
将需要上传的文件,从工作区提交至暂存区(需要注意的是该文件需要在仓库的.git文件同级或以下的文件层级))
git add ./test.txt
git commit -m
确认暂存区需要提交的文件,至仓库内。
git push推送工作区至
连接远程仓库
git remote -v //查看远程仓库
git remote add <远程仓库别名> <url> //这样就不用每次输入仓库的git链接
例如:
git remote add DL git@github.com:xxx/xxx.git
有了提交的备注之后就可以把暂存区的文件推送到远程仓库了
git push -u <远程版本库名> <分支名>
分支
git branch //查看分支
git branch <branchName> //创建分支
git checkout <branchName> //切换分支
git checkout -b <branchName> //综合上面两句,创建并切换分支
git branch -d <branchName> //删除branchName分支
冲突
对于遇到同一个文件不同人的修改同一区域,且上传时,此时需要将修改进行合并。
git diff //默认工作区和暂存区比较
git diff --cached //暂存区和HEAD比较
git diff --HEAD //工作区和HEAD比较
回退
git revert
是生成一个新的提交来撤销某次提交,此次提交之前的commit都会被保留,只是将指定提交的代码给清除掉
git reset
是回到某次提交,提交及之前的commit都会被保留,但是此次之后的修改都会被退回到暂存区
merge和rebase
git merge:
记录下合并动作,很多时候这种合并动作是垃圾信息
不会修改原 commit ID
冲突只解决一次
分支看着不大整洁,但是能看出合并的先后顺序
记录了真实的 commit 情况,包括每个分支的详情
git rebase:
改变当前分支 branch out 的位置
得到更简洁的项目历史
每个 commit 都需要解决冲突
修改所有 commit ID
git rebase --abort
,rebase的所有操作撤销。
其作用是将另一个分支的提交信息全部移动到当前开发分支上
git remote
git remote add Study-CS (url带有.git结尾)
。
git remote rm Study-CS
,撤销远程配置
举例
配置远程仓库别名进行push
对于新创建的github仓库,使用git进行配置远程仓库
echo "# learning-basic" >> README.md
git init
git add README.md#git add 文件路径
git commit -m "first commit"#git commit -m "本次commit注释"
git branch -M master
git remote add origin git@github.com:xxx/xxx.git[github提供的ssh后缀为git链接]
git push -u origin master #git push -u 配置的远程仓库连接别名 分支
问题集
如果远程仓库为新建,出现版本报错问题
#前提:先将本地的文件拷贝至别处,然后。
#我们需要将在本地新建仓库,并初始化.使用:
git pull ssh地址#,将本地仓库版本与远程仓库版本一致
#然后,再将刚才拷贝备份的文件复制回来。
git add ./
git commit -m ""
#最后上传至远程仓库
git push ssh地址
切换分支时被拒绝
- 将修改进行提交
- git add . : 将修改的文件添加到暂存区
- git commit -m "xxx" : 将暂存区提交到版本库,完成一次提交
- git checkout target-branch-name :再次执行切换命令
- 使用参数 --force 执行强制切换,但会导致修改部分被覆盖。
- git checkout --force target-branch-name
- 对修改文件暂存
- git stash : 将修改文件进行暂存
- git stash pop 暂存记录标识 : 将某一具体的暂存的记录恢复
- git stash list : 查看暂存文件的列表