git总结
最近不知为什么git desktop崩了,遂重新使用命令行,总结一下git的相关命令。
本地库管理
切换到工作目录
将文件xxx(也可以添加文件夹)添加到仓库
git add xxx
将文件提交到仓库
git commit -m "关于此次commit的描述"
查看当前状态
git status
查看修改内容
git diff
查看更新日志
git log
新建远程库
- 在github上创建仓库
- 在本地创建文件夹作为本地仓库,在文件夹下使用命令行
git init
,使本地文件夹成为仓库 - 切换到工作目录并与本地的库关联
git remote add origin git@github.com:michaelliao/learngit.git
git pull origin branchxx
将远程仓库branchxx的内容下拉到本地库,branchxx一般是master或者main,在github网站的远程仓库页面可以找到- 把本地库的内容推到远程库上(之后可以不用写-u)
git push -u origin master
分支
当使用github协同工作,使用分支可以使工作更加整洁。
切分支开发
git的分支可以看作指向当前结点的指针,HEAD指针始终指向文件的最新的地方。
分支的创建:git branch branch1
分支的切换:git checkout branch1
分支切换意味着,如果在该分支上产生的所有改动add或commit都将是在该分支下。
分支的合并
一、本地多个不同分支的合并
本地有多个分支时,在branch1分支下,使用git merge branch2
就会将branch2合并到branch1分支。
二、远程分支和本地分支的合并
git pull
拉取远程分之后直接与本地分支进行合并,其作用相当于git fetch
和git merge
但是远程和本地合并时较长涉及到一致性的问题。
1.如果本地分支已有未提交的修改,此时又需要pull,可使用如下命令:
1)用git add
将需要隐藏的文件保存在暂存区
2)隐藏本地分支工作:git stash save "message"
3)执行git pull
命令,将远程分支下拉下来,此时不会出现冲突情况
4)使用git stash list
可查看有哪些stash。使用git stash show stash@{num}
可以看到第num-1个stash了存储了那些内容,默认是0号存储。
5) 若要恢复原来的文件,可使用git stash pop
命令恢复。该命令会将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash。
6)若隐藏的文件可丢弃,则可使用git stash drop stash@{$num}
丢弃该文件的内容。
注意,使用git stash
后,暂存区的所有文件都会被隐藏,意味着如果再次进行git add
暂存区是不会有东西的,使用git commit
也是无法提交更新的,只有恢复后才能解除文件的隐藏。
三、某个分支的diverged
当出现了Your branch and origin/master have diverged,and have...different commits each respectively
此时可使用git rebase origin/master
将分叉的分支重新合并。
原文作者: Ruoting Wu
原文链接: https://codingclaire.github.io/2019/10/11/git%E6%80%BB%E7%BB%93/
许可协议: 知识共享署名-非商业性使用 4.0 国际许可协议