常用
一、配置:
1、用户名:git config --global user.name "name"
2、邮箱:git config --global user.email "xxx@xx.com"
3、ssh:ssh-keygen -t rsa
在文件目录C:\Users\用户名.ssh;将id_rsa.pub的内容添加到github的SSH KEY中
二、初始化仓库:git init
三、克隆项目代码:git clone [url链接]
1、git clone
拉取完整的仓库到本地目录,可以指定分支,深度
2、git fetch
将远端某些分支最新代码拉取到本地,不会执行merge操作(直接切换到了远程分支,我们原本的代码及修改还留在原本的分支上,可通过cherry-pick or rebase or merge origin/name来合并远程代码到本地)
(1)git fetch origin name
将远程的name分支拉到本地
(2)git fetch origin name1:name2
将远程的name1分支拉到本地的name2分支(如果name2不存在,将自动创建一个)
(3)git fetch origin :name2
在本地创建一个name2分支
3、git pull
拉取远端某分支,并和本地代码进行合并,等同于git fetch+git merge,也可以通过git pull --rebase 完成git fetch+git rebase的操作
git pull origin master:name --rebase
四、创建并切换分支:git checkout -b name
1、git checkout -b name origin/main
创建一个name分支,跟踪远程的mian分支
五、创建分支:git branch name
六、 切换分支:git checkout name
1、git checkout name^
切换到name节点的父节点(头顶的)
2、git checkout name^2
切换到name节点的第二个父节点(非头顶的)
3、git checkout origin/name
切换到远程分支
4、git branch -f name name~3
将name节点强制移动到上面三代
5、git branch -f name name2
将name节点强制移动到name2节点
6、git checkout -u origin/main
用当前分支跟踪远程分支
7、git branch-u origin/main name
用name(已存在)当前分支跟踪远程分支
七、查看分支:git branch
查看远程分支 :git branch -r
八、将修改的文件上传到暂存区:git add .
九、将暂存区的文件上传到本地仓库:git commit -m "备注"
十、将本次修改合并进前一次修改:git commit --amend
十一、将本地仓库的修改上传到远程仓库:git push
1、git push origin master
推送到远端master分支,git commit --ament 或 git rebase可能造成版本冲突,可以用git push origin master -f 强制推送
2、git push origin name1:name2
将本地的name1分支推送到远程的name2分支;如果name2分支不存在,将在远程创建一个
3、git push origin :name2
删除远程仓库的name2分支
十二、查看本次修改:git status
十三、查看历史版本:git log
十四、撤销变更:git reset HEAD~1
撤销一个版本修改,回到上一个版本,但是不能同步到远程仓库,要想同步到远程仓库,要用 git revert name
十五、合并提交:git cherry-pick name1 name2...(name is objectID)
十六、合并节点:
1、git rebase name1 name2
将name2节点合并到name1节点下面
2、git rebase name
将当前节点放在name节点下面
(1)git rebase -i name~4
获取name向上四代的节点信息(可修改顺序)
3、git merge
将当前节点和name节点合并成一个新的节点
十七、标签:git tag v1 name
十八、查找距当前版本最近的提交:git describe name
不太常用
1. 查看object内容:git cat-file -p 编号
2. 查找悬空object:git fsck --lost-found
3. git reflog expire --expire=now --all
4. 打包object,删除悬空object:git gc --prune=now
多人协作提交流程
拉出一个共工作分支:git checkout -b name
开发完成后提交代码:git add . git commit -m "备注"
切换回主分支(要和到的分支):git checkout master
如果本地主分支不是远程的最新提交,拉去远程最新提交:git pull --rebase
切换回工作分支:git checkout name
和到主分支:git rebase master
推到远程仓库:git push 或 git push origin HEAD:name 或者加个--force选项
如果想将本次修改和上一次提交共用一个节点或想要修改上一次提交的备注:git commit --amend
00. 删除文件
删除github上的文件 -- 使用github删除和使用git删除_github删除文件-CSDN博客
图形化练习Learn Git Branching
操作介绍:
levels 回到关卡界面
reset or undo 重置本关
objective 获取本关提示
show soluation 看答案
git feakTeamwork 在远程分支模拟提交
Tab键补全