Git 常用指令合集(持续更新)

1. git的基本命令
git init    初始化git生成git仓库
git status  查看git 状态
git add <filename>         添加文件到暂存区
git add .   将所有的文件添加到暂存区
git commite -m 'message'          提交文件到本地仓库
git reset <filename>          将尚没有commit之前加入到暂存区的文件重新拉回
git log  查看日志

git branch //查看本地所有的分支
git branch -r//查看远程所有分支
git branch -a//查看本地和远程的所有分支
git branch <branchName>//新建分支
git branch -d <branchName>//删除本地分支
git branch -d -r <branchName>//删除远程分支,删除后还需推送到远程服务器
git push origin:<branchName>//删除后推送到远程服务器
git branch -m <oldbranch> <newbranch>//重命名本地分支

取消分支的合并:git merge --abort
只合并某个分支上的某一次提交: git cherry-pick commitid
让远支持提交长文件名: git config --global core.longpaths true

查看当前登录用户名:
git config user.name
查看当前登录邮箱:
git config user.email
修改用户名和邮箱:
git config --global user.name “xxx”
git config --global user.email “xxx”


git branch -a   查看分支
git fetch origin 拉取远程分支
git checkout -b <分支名> 切换分支
git branch -d<分支名> 删除分支
创建本地分支,并切换至本地分支,同时将本地分支和远程分支相关联: 
git checkout -b 本地分支名 origin/远程分支名

在git init 初始化仓库后,添加远程仓库:
git remote add origin 远程仓库地址

初始化仓库之后进行关联:
git branch --set-upstream-to=origin/远程分支名 本地分支名
2. git fetch 和 git pull的区别

        git fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。而git pull 则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。

3.git 中一些选项的解释
  • -d :--delete 删除
  • -D :--delete --force的快捷键
  • -f :--force 强制
  • -m :--move 移动或重命名
  • -M :--move --force 的快捷键
  • -r :--remote 远程
  • -a :--all 所有
4.查看提交历史

git log
git log --online
git log --online --graph --decorate

选定的查看两次提交的不同:
git diff <CommitID1> <CommitID2>

5.git文件状态的解释说明
  1. 没有被add的文件叫untracked
  2. add之后的文件处于staged状态等待commit
  3. commit之后的文件处于unmodified这里之所以是modified是因为文件会跟仓库中的文件对比
  4. 当ummodified的文件被修改则会变为modified状态
  5. modified之后的文件add之后将继续变为staged状态
  6. unmodified的文件还有一种可能是已经不再需要了,那么可以remove它不再追踪变为untracked

从git中更新代码就是重新拉一遍代码:git pull

6.git提交部分代码
  1. 定位到要提交代码的路径下
  2. git status -s 查看仓库的状态
  3. git add 文件名(一定要在当前项目路径下)
  4. git stash -u -k 忽略其他文件,把现修改的文件隐藏起来,这样提交的时候就不会提交
  5. git commit -m "添加备注"
  6. git pull 拉取合并代码
  7. git push 推送到远程仓库
  8. git stash pop 恢复之前忽略的文件(非常重要的一步)
  9. 未被add的文件
7.报错记录
  • 报错:failed to push some refs to 远程仓库地址
  • 解决办法:git pull --rebase origin 当前远程仓库的地址,然后用git push 提交代码
  • git clone 时报错:unable accsse to "url"地址,SSl certificate problem:self signed.....
  • 解决办法:找到git文件夹中的bin文件,打开cmd窗口,输入:
  • git config --global http.sslVerrify false 之后即可克隆下载项目
  • 报错:fatal: refusing to merge unrelated histories(常出现在新建了一个仓库之后,把本地仓库进行关联提交、拉取的时候)
  • 解决办法:在需要进行的操作命令后面加 --allow-unrelated-histories。例如
    git merge master --allow-unrelated-histories
    
    git pull origin master --allow-unrelated-histories 
    
    git pull --allow-unrelated-histories
8.合并分支与取消合并

在A的分支拉B分支的代码:
1.在A的分支执行git pull origin B分支名或者执行get merge进行合并

2.取消分支的合并:git merge --abort


9.回退版本
    1.已 commit,未push到远程仓库。 
git reset --soft(撤销commit)
git reset --mixed(撤销 commit 和 add 两个动作)
    2.已 commit,并且push到了远程仓库。 
git reset --hard(撤销并舍弃版本号之后的提交记录)(然后要用git push -f进行提交,覆盖所有之前的提交)
git revert(撤销,但是保留了提交记录)(这个不会覆盖之前所有的提交)

    3. 已经执行了git reset --hard 回滚之后,怎么撤销这一步回滚操作(用git reset --hard 回滚git reset --hard,也许这就是解铃还须系铃人)

  1. 首先执行git log -g 或者 git reflog show来查看commit记录
  2. 找到执行reset --hard之前的commit对应的commitid,这一步我们可以通过日期和时间来辨别
  3. 最后直接使用命令git reset --hard commitid可强制回滚到之前的版本
  4. 附录:我们也可以通过使用git cherry-pick commitid来回滚某一个提交,因为有个时候我们使用git reset --hard之后可能只想回滚某一次提交,这个时候git cherry-pick 就可以派上用场
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值