常用命令
git pull
git pull origin <xxBranch> #eg.#从远程仓库的xxBranch分支拉取最新的更改合并到当前分支
git push
git push origin <xxBranch> #将本地的更改推送到远程仓库的xxBranch分支
#开始工作区
git init #在当前目录下创建一个新的.git目录,初始化新的Git仓库
git clone
git clone <warehouseAddress> #将远程仓库克隆到本地
#处理当前更改
git add
git add file.txt #将file.txt文件的更高添加到暂存区,便于下次提交
git mv
git mv oldname.txt newfile.txt #移动或重命名文件,并将更改添加到暂存区
git restore
git restore file.txt #从暂存区或最后一次提交中恢复'file.txt'的内容
git rm
git rm file.txt #删除'file.txt'文件,并将删除操作添加到暂存区
#检查历史记录和状态
git bisect #使用二分查找算法来帮助找到引入错误的提交
git bisect start #启动二分查找,标记当前的提交为坏的,并标记'<commit>'为好的
git bisect bad
git bisect good <commit>
git diff #显示工作目录中已修改但未暂存文件的差异
git diff newFile oldFile #也可以这样使用,对比两具体文件或者分支的差异
git grep #在工作目录或提交历史中搜索文本
git grep "testName" #搜索包含'testName'的所有文件
git log #列出当前分支的提价历史
git show #显示对象的所有类型,如提交、标签等。
git show <commit> #显示指定提交的详细信息
git status ##显示工作目录和暂存区的状态,提示被修改、被暂存及未被跟踪的文件
#管理分支和历史记录
git branch #列出、创建或删除分支
git commit
git commit -m "commit message" #提交暂存区的所有更改,并附上提交消息
git merge
git merge testBranch #将testBranch分支合并到当前分支
git rebase
git rebase testBranch #将当前分支的更改应用到testBranch分支上
git reset
git reset --hard <commit> #将当前分支重置到<commit>,并丢弃所有更改
git switch
git switch testBranch #从当前分支切换到testBranch分支
git stash #暂存当前未提交的更改,以便清空工作目录
git cherry-pick #从一个分支中选定特定的提交,并将其应用到当前分支
git cherry-pick <commit-hash> #将指定的提交应用到当前分支
git remote #管理远程仓库
#使用标签
git tag #创建、列出、删除或验证标签
git tag v1.0.0 #创建一个'v1.0.0'标签
#协作
git fetch
git fetch origin #从远程仓库获取最新的更改,但不合并到当前分支
git pull
git push
1 远程分支操作
1.1 创建远程分支
1.1.1 基于本地分支创建
git checkout -b <分支名> #创建分支
git push --set-upstream origin <分支名> #提交到远程仓库
1.1.2 基于已有远程分支创建
git checkout -b <新分支名> origin/<已有远程分支名> #基于已有远程分支创建分支
git push --set-upstream origin <新分支名> #提交到远程仓库
1.2 删除远程分支
git branch -r -d origin/<分支名>
git push origin :<分支名>
1.3 更新本地分支列表以同步远端
#更新分支名(本地git branch -a后与远端分支不同步执行)
git remote update origin --prune
#git remote update origin: 这部分指令用于从远程仓库(这里指的是名为 origin 的远程仓库,
#通常是你的代码主仓库)获取最新的分支和提交信息。它会更新你的本地仓库,使其了解远程仓库的最新状态。
#--prune: 这个选项告诉 Git 在更新远程分支信息后,删除本地仓库中已经不存在于远程仓库的分支。
2 本地分支操作
2.1 删除本地分支
git branch -d <分支名>
#eg.删除本地分支master_branch
git branch -d master_branch
2.2 强制回退本地分支并清理
#回退分支代码,删除除远端代码之外的东西
git reset --hard;
git clean -xdf
#这两条指令一起使用时,会将你的 Git 仓库恢复到一个干净的状态,
#所有未提交的修改和未被跟踪的文件都会被删除。
3 版本查看
3.1 查看当前版本提交次数
git log --oneline | wc -l #查看当前版本,带提交次数
4 Git 贮藏功能 (Stash) 的使用和作用
Git 的贮藏功能 (stash) 可以将当前工作目录中未提交的修改(包括已修改的文件和暂存的修改)保存起来,以便稍后恢复。它就像一个临时存储区,可以让你在不提交修改的情况下切换分支或者执行其他操作,然后再将这些修改应用回来。
4.1 作用
4.1.1 临时保存工作进度
当你正在进行一项工作,但突然需要切换到其他分支处理紧急任务或者需要拉取最新的代码时,可以使用 git stash
将当前的修改保存起来,避免丢失或与其他分支的代码冲突。
4.1.2 清理工作目录
如果你想清理工作目录,但又不想提交当前的修改,可以使用 git stash
将修改保存起来,然后使用 git clean
清理工作目录。
4.1.3 在不同分支间转移修改
你可以在一个分支上开发功能,然后使用 git stash
保存修改,切换到另一个分支,再使用 git stash pop
将修改应用到新的分支上。
4.2 使用方法
4.2.1 贮藏修改
git stash #将所有未提交的修改(包括已修改的文件和暂存的修改)保存到一个新的贮藏中。
git stash save "stash comment message" #也可以添加描述信息
4.2.2 查看贮藏列表,查看储藏
git stash list #列出所有已保存的贮藏,每个贮藏都有一个唯一的标识符。例如‘stash@{0}’
git stash show stash@{0} # 查看储藏(默认为最近的储藏)
4.2.3 应用贮藏
git stash apply [<stash>] #应用指定的贮藏 (默认为最近的贮藏),但不会从贮藏列表中删除该贮藏。
git stash pop [<stash>] #应用指定的贮藏 (默认为最近的贮藏),并从贮藏列表中删除该贮藏。
#eg.
git stash apply stash@{0}
git stash pop stash@{0}
4.2.4 删除贮藏
git stash drop [<stash>] #删除指定的贮藏 (默认为最近的贮藏)。
git stash clear #删除所有贮藏。
4.2.5 创建分支并应用贮藏
git stash branch newBranch stash@{0} #创建一个新的分支,并将指定的贮藏(默认为最近的储藏)应用到该分支上。
4.3 应用示例
假设你正在开发一个新功能,但突然需要修复一个 bug,你可以使用以下步骤:
-
贮藏修改:
git stash save "开发新功能"
-
切换到主分支:
git checkout master
-
修复 bug 并提交: ...
-
切换回开发分支:
git checkout <你的开发分支>
-
应用贮藏:
git stash pop
这样,你就可以继续开发新功能了。
总结:
git stash
是一个非常实用的 Git 功能,可以帮助你更灵活地管理你的工作进度和代码修改。熟练掌握它的使用方法,可以大大提高你的工作效率。
5 总结
以上命令涵盖了 Git 日常开发中常用的分支操作、版本查看和代码贮藏功能。熟练掌握这些命令可以帮助你更加高效地进行版本控制和团队协作。
6 分支管理_demo
分支管理就像创建平行世界,让你安心修改,最后合并到主线剧情。
假设你正在开发一个网站,你需要添加一个新功能,同时还要修改一些bug,为了避免混乱,你可以使用分支管理:
6.1 创建你的分支
可参考1.1.2 基于已有远程分支创建(最常用)
git checkout main # 确保你在主分支上
git checkout -b feature/new-feature # 创建并切换到名为 "feature/new-feature" 的分支
这就像你创建了一个平行世界,可以在里面安心开发新功能,而不会影响主线剧情(主分支)。
6.2 在你的分支上修改
# 编写代码,添加新功能
git add . # 将修改添加到暂存区
git commit -m "添加了新功能" # 提交修改到本地仓库
在这个平行世界里,你可以自由地进行修改,就像修改剧本一样,不用担心影响主线剧情的完整性。
6.3 推送到远程仓库
git push origin testProject
#or
#直接git push,会在远程仓库创建同名远程分支并推送本地分支代码,然后merge即可
git push
将我的修改推送到远程仓库的 testProject 分支,就像将你修改后的剧本上传到云端备份。
6.4 合并到主分支
6.4.1确保主分支代码最新
git checkout main
git pull origin main
#注意,这里从远程git pull时,会有额外的提交记录,即将远程main分支合并到本地的。如果觉得繁琐,可以使用变基。
git pull origin main --rebase
#这样就不会有上面的合并额外提交记录,显得提交历史更加线性
6.4.2 合并分支
git merge feature/new-feature
这就像将你修改后的剧本情节合并到主线剧情中,如果发生冲突,需要手动去解决。
6.4.3 解决冲突(如果有)
Git会提示冲突的文件和位置,需要手动修改代码,解决冲突。
解决冲突后,使用git add .和git commit -m "提交备注"提交修改。
6.4.4 推送到远程主分支
git push origin main
6.4.5 总结
-
使用分支管理可以让你在独立的分支上进行开发,避免影响主分支的稳定性。
-
合并分支之前,最好先将主分支的最新代码合并到你的分支,避免冲突。
-
发生冲突时,需要手动解决冲突,并提交修改。
通过合理地使用分支管理,你可以更加高效地进行代码管理和团队协作,就像一位优秀的导演,将不同的情节完美地融合在一起,创作出精彩的故事。
这组命令是在 Git 中创建新分支,并把新分支推送到远程仓库的操作。
6.5 更新本地分支
一般在合并后,则说明当前功能提交,下次开发功能创建新的平行世界。