git的使用过程

git使用命令及应用场景

本地仓库操作(local repository:版本库.git或本地仓库)

本地有两个区(工作区 <=> 暂存区/缓存区)

git init (初始化)

git add (添加到暂存区)

git add flie1 file2...

git add /目录

git . 添加所有

git status(查看状态)

-s 输出简短的结果

git commit (提交)

-m "附带信息" 暂时存取 --> commit到 本地仓库中

文件1 文件2 ...多文件提交 -m "附带信息"

-a 直接提交到本地仓库 不需要 add .

-am 直接提交附带信息

设置提交代码时的用户信息:

git config --global user.name ' '

git config --global user.email

git reset(撤回)

当点击add . 提交到暂存区后 需要推回可以指定 文件退 git reset --hard HEAD 目标文件, 再commit后就不会被提交上去

-- soft 参数用于回退到某个版本:

--mixed 为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。

--hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交:

HEAD 表示当前版本

用符号表示:

--hard

​ HEAD 退回当前版本

​ HEAD^ 上一个版本

​ HEAD^^ 上上一个版本

​ HEAD^^^ 上上上一个版本。。。。。

用参数表示:

​ HEAD~0 表示当前版本

​ HEAD~1 上一个版本

​ HEAD^2 上上一个版本

​ HEAD^3 上上上一个版本。。。。

git rm(删除)

git rm 目标文件

git rm -f 强制删除 目标文件

为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。

git mv(移动)

git mv 命令用于移动或重命名一个文件、目录或软连接。

如果新文件名已经存在,但还是要重命名它,可以使用 -f 参数: git mv -f file newfile

git diff(暂存区和工作区文件的比较)

尚未缓存的改动(显示暂存区和工作区的差异):git diff flie

查看已缓存的改动(显示暂存区和上一次提交(commit)的差异:): git diff --cached / git diff --staged file

查看已缓存的与未缓存的所有改动:git diff HEAD

显示摘要而非整个 diff:git diff --stat

远程仓库操作(remote repository)

ssh连接

连接github账号: ssh-keygen -t rsa -C "github账号"

在C盘下用户目录中查找key .ssh 文件夹,进去,打开 id_rsa.pub,复制里面的 key。 将key复制到github账号ssh里

验证连接情况 :ssh -T xxxxxx@github.com

对远程仓库的基本使用命名

git remote

-v 显示所有远程仓库

add [本地的版本库名] [github库路径]

rm 远程仓库 删除

rename 目标仓库名 新的仓库名 # 修改仓库名

远程分支和本地分支的合并和数据获取(git fetch 和 git merge)

先拿数据git fetch(拿来) git fetch [起别名]

再将远程分支合并到本地分支git merge(合并)

场景: 远程有个需要修改的文件,git fetch [本地版本库名orgin] 拿到数据到工作区后修改,完成后用git merge origin/分支 再合并到去远程库分支去

git pull(于从远程获取代码并合并本地的版本) = fetch + merge

远程分支(origin/main) 与 本地分支(master)合并 git pull origin [远程分支] : [本地分支]

省略:如果远程分支名与本地分支名相同可以这样写(假设本地分支是main) git pull origin main

git push (推送) 从将本地的分支版本上传到远程并合并

场景:本地分支(master)推送到远程分支(origin:main): git push orgin (本地分支): (远程分支)

如果本地版本与远程版本有差异,但又要强制推送可以使用 --force 参数: git push --force origin master:main

删除本地版本库的远程分支: git push origin --delete main

分支操作

查看分支列出你在本地的分支: git branch

创建分支: git branch 分支名

切换分支: git checkout 分支名

创建新分支并立即切换到该分支下: git checkout -b 分支名

删除分支:

​ 删除本地分支 git branch -d 分支名

​ 删除远程分支 git push 本地版本库 --delete [远程分支名]

合并分支: git merge

​ 当分支合并后发生冲突时,需要对它来拉取(git fetch)后修改完再合并

​ git fetch -->git add 修改完的文件 ---> git commit 修改完的文件 - m "文件修改好了" --> git push 远程分支:本地分支 --> git merge 再合并远程分支

日志操作

git log - 查看历史提交记录。

git blame - 以列表形式查看指定文件的历史修改记录。

git log --oneline 查看历史记录的简洁的版本

git log --graph 选项,查看历史中什么时候出现了分支、合并。以下为相同的命令

git log --reverse --参数来逆向显示所有日志

git log --author=用户名 查找指定用户的提交日志

指定日期

git log --oneline --before={3.weeks.ago} --after={2010-04-18} --no-merges  

--since(从什么..开始) 和 --before(在什么之前开始) --until(直到什么时候结束) 和 --after(直到什么时候结束)。 --no-merges 选项以隐藏合并提交

git log --oneline --before={n.weeks.ago} --after={2021-n-n} --no-merges

git blame 目标文件 指定查看修改记录文件

异常问题解决:

问题一 git add . 的时候遇到warning: LF will be replaced by CRLF in ...... 解决办法

​ 解决方法: git config --global core.autocrlf false

就可以解决了。

原因就是:

原因是路径中存在 / 的符号转义问题,false就是不转换符号默认是true,相当于把路径的 / 符号进行转义,这样添加的时候就有问题

问题二 如果还没添加远程仓库前就先 git add.到缓存中,再去添加远程仓库,再去push就会出现异常

**git pull --rebase [origin] [远程分支] **  本地生成ReadMe文件

提交顺序不对

正确的顺序:

git init --> git remote add 远程仓库 --> git pull [origin] [远程分支] ---> git add . --> git commit -m "提交" --> git push [master]: [远程分支]

问题三

在git merge 后报错使用

​ git pull origin master --allow-unrelated-histories( 允许不相关的历史记录)

posted @   Zi_lian  阅读(53)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示