git常见概念&命令

官方文档
廖雪峰git教程

概念

分支
每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,master分支指向这条时间线.这块概念还不明确,目前的理解就是git里有一个时间线,这条线就是一个个的快照串起来的线,还可以有很多分支,每个分支实际上就是一个指针,默认的使用的是master指针,移动的也是这条指针,当创建并使用其他分支时,就是master指针还指向原来的快照点上,保持不动,然后移动其他分支指针指向最新的快照,仅此而已,因此删除分支实际上就是删除快照和指针,合并分支就是移动指针,新建分支就是新建指针.

工作区,暂存区,head指针
git主要负责管理的就是这三个区,暂存区又叫statge或index,其中暂存区的版本是执行git commit后将要生成的快照的版本.head指针就是一个指针,指向当前分支,当前分支实际上也是个指针,指向自己所管理一段时间线的某个快照点,
因此head指针指向当前分支所指向的某个版本.工作区实际上就是一个即时修改的所有文件,即用ide可以查看和修改的文件,按照官方文档的描述类似一个沙盘.

git的正常工作流程
1.git init让某个目录成为一个git管理的项目
2.修改完成后,git add . 将当前目录中的所有内容添加至工作区,此时当前目录中所有文件的工作区版本和缓存区的版本完全一致.
3.再次修改并添加到暂存后,决定提交当前快照到分支中,使用git commit.
4.此时执行gitstatus,发现提示working tree clean, 此时三个区的版本完全一致.

merge和rebase的区别
Git - merge和rebase的区别 - 李若盛开 - 博客园

常用命令

更新.gitignore后立即生效,需要清理暂存中的缓存

git rm -r --cached

设置git中的用户信息,不加--global仅设置仓库级

git config --global user.name
git config --global user.email

管理远程仓库

git remote -v

# origin2为远程仓库的别名
git remote add origin2 https://github.com/user/repo2.git
git remote rm origin2

# 拉取和提交时指定远程仓库
git push origin2 master
git pull origin2 master

回滚到某个提交

git reflog
git reset ${commidId} --hard

删除分支

git branch -d feature-branch
git push origin --delete feature-branch

删除分支

git branch -d feature-branch
git push origin --delete feature-branch

查看已合并的本地分支并删除

 git branch --merged master
 git branch --merged | grep -v '\*' | xargs -n 1 git branch -d
posted @ 2024-12-29 14:01  即便那总是过去  阅读(19)  评论(0)    收藏  举报