Git常用命令
-
新建仓库并提交
# 初始化本地仓库 git init # 关联远程仓库 git remote add origin git@vesync.com:cloudTeam/levi # 创建分支,切换分支 git checkout -b feature-test # 添加文件, cd到要上传的文件夹下, add . 是上传所有文件 # git add命令将要体检的文件的信息添加到索引库中,以准备为下一 # 次提交分段的内容 git add . # git commit命令用于将更改的记录提交到存储库,将索引的当前内 # 容与描述信息一起存储在新的提交中 git commit -m "commit" # git push命令用于将本地分支的更新推送到远程分支 git push origin feature-test
-
删除文件
# 删除远程分支文件,不删除本地文件 git rm --cached thisfile git commit -m "delete this file" git push origin feature-test # 删除远程分支文件夹,不删除本地 git rm -r --cached thisfolder git commit -m "delete this folder" git push origin feature-test
-
git fetch
# git fetch命令用于从另一个存储库下载对象和引用 # 更新所有分支 git fetch # 更新特定分支 git fetch feature-test # 从远程命名空间复制所有分支,并将其存储到本地的 # .git\refs\remotes\origin命名空间中 git fetch origin
-
git pull
# git pull命令的作用是:取回远程主机某个分支的更新,再与指定的 # 本地分支合并,可以理解为 git fetch 后跟 # git merge FETCH_HEAD两个操作的集合 # 更准确的说是:git pull使用给定的参数运行git fetch,并调用 # git merge将检索到的分支头合并到当前的分支中 # 获取远程分支feature—test,与本地master分支合并 git pull origin feature-test:master # 获取远程分支与当前分支合并 git pull origin feature-test
-
Git修改分支名称
-
本地分支重命名(还未推送到远端)
git branch -m oldName newName
-
远程分支分支重命名
- 重命名远程分支对应的本地分支
git branch -m oldName newName
- 删除远程分支
git push --delete origin oldName
- 上传新命名的本地分支
git push origin newName
- 把修改后的本地分支与远程分支关联
git branch --set-upstream-to origin/newName
-
-
Git如何clone非master分支的代码
# 先clone master分支 git clone git@gitlab.xxx.com:xxxxx.git # 进入clone的文件夹,会看到当前的分支为master # 查看所有分支 git branch -a # 切换到需要clone的分支 git checkout origin/dev-xxx
-
误删除了远程分支
# 想办法找到最新一次的commit SHA值 # SHA值可以通过gitLab上的提交记录查看,也可以使用git reflog命令 git branch branchName SHA # 然后再将此分支推送到远端 git push origin branchName
-
git pull出现冲突
# 保留刚才本地修改的代码,并把git服务器上的代码pull到本地 git stash git pull origin master git stash pop # 完全覆盖本地的代码,只保留服务器端代码,则直接回退到上一个版本 git reset --hard git pull origin master
-
git pull后恢复到原来版本
# git pull后发现不是想要的版本,需要回退 # 查看本地分支的变动记录 git reflog loacal_branch # 利用commit id恢复到之前的位置 git reset --hard <COMMIT_ID>
-
报错:
Updates were rejected because the tip of your current branch is behind
-
强制push,会使远程修改丢失
git push -u origin master -f
-
不想merge远程与本地,新建分支
git branch newBranch git push -u origin newBranch
-
-
撤销commit
#仅撤回commit操作,代码依然保留 #HEAD^指回退上一个版本 git reset --soft HEAD^ #若提交了2次commit,可以使用HEAD~2 #参数区别 #不删除工作空间改动代码,撤销commit,并且撤销git add . 操作 --mixed #不删除工作空间改动代码,撤销commit,不撤销git add . --soft #删除工作空间改动代码,撤销commit,撤销git add . --hard
-
强制覆盖本地代码
git reset --hard origin/dev git pull origin/dev