常用的git指令
创建git仓库
git init
提交所有被删除、被替换、被修改和新增的文件到数据暂存区
git add -A
提交暂存区文件到版本库
git commit -m "提交描述"
查看提交日志
git log
查看代码的修改情况
git status
新建并切换本地分支
git checkout -b "分支名"
切换本地分支
git checkout "分支名"
查看本地分支
git branch
将远程git仓库里的指定分支拉取到本地
git checkout -b 本地分支名 origin/远程分支名
将本地分支推送到远程git仓库
git push --set-upstream origin 分支名
删除本地分支
git branch -d 分支名
删除远程分支
git push origin --delete 分支名
克隆远程项目
git clone 远程项目地址
添加源地址
git remote add origin 新源地址
更换源地址
法一:直接原基础更换源地址
git remote set-url origin 新源地址
法二:先删后加
git remote rm origin
git remote add origin 新源地址
更换了新的源地址,并不能直接立马pull 或者 push ,应该对分支添加监听才可以做操作
比如在更换了源地址后,对master分支执行git pull,提示当前分支没有跟踪信息,需要我们添加远程master的跟踪信息
git branch --set-upstream-to=origin/<远程分支名> 本地分支名

再次执行git pull,成功更新本地master仓库
查看源地址
git remote -v
从远程分支更新本地代码
git pull
合并其他分支代码
git merge 其他分支名
取消本次merge
当我们使用git merge操作合并代码但还没add时,若想取消这次合并,使用“git merge --abort”命令即可
git merge --abort
假如不幸已经 git add 了怎么办呢? 其实也很简单,先用 git reflog 指令显示历史的操作
再用 git reset --hard commit id就可以回退到操作之前的状态了
git reset --hard commit id
合并其他分支的某一部分的提交记录
比如,有时候我们只需要合并B分支的某一部分提交记录到A分支中,应该怎么办呢?
分两种情况:
只合并一个commit
当只需要合并B分支的一个commit到A分支中,我们先在B分支输入指令git log查看这一commit的版本号
git log
比如我们要合并B分支的第三个commit到A分支中
那么我们先切换到A分支
git checkout A
再执行以下指令即可( 153d96c3b7fb5d4d7a2e1ad869c3733cce21817a是B分支这一commit的版本号)
git cherry-pick 153d96c3b7fb5d4d7a2e1ad869c3733cce21817a
A分支执行git log即可看到A分支已经有这一commit记录
合并连续的多个commit到指定的分支上
比如在B分支上有7c32be61到54dfef55的连续的10个commit,54dfef55是后面的提交。先在要将这10个commit 合并到A分支上
首先基于B分支创建一个临时分支temp,并指明新分支的最后一个commit
git checkout -b temp 54dfef55
将temp分支上的从7c32be61到最后一个commit,也就是54dfef55的commit合并到A分支上
git rebase --onto A 7c32be61^
A分支执行git log即可看到A分支已经有这一commit记录
提交本地分支到远程仓库
git push -u origin 远程分支名
git 版本回退
法一(不是很推荐)
- git log 查看要回退的版本的版本号
- git reset --hard 要回退的版本号
- git push -f -u origin 远程分支名 // 强制push到远程分支
- ok,服务器代码已经回退,但是如果多个同事在使用这个分支,他们本地版本还是比服务器的版本高,所以别人重新提交代码,这个版本回退的操作也会被撤销,解决办法是让别人先将他们的本地分支删掉再重新从服务器拉取分支
法二(推荐)
- git log 查看要回退的版本的版本号
- git revert -n 要回退的版本号
- git commit -m “提交备注”
- git push origin 远程分支名
- ok,版本还原,其他同事只需要git pull更新一下代码即可