git命令

用过至少三种git软件。没有一款好用的,曾经被迫使用sourceTree。感觉还不如Xcode集成的,个人还是推荐使用命令行操作。至于分支图建议网页浏览。

git命令:

git clone 地址  下载项目(地址在你当前位置,通过cd切换你想去的目录)

rm -fr .git  删除Xcode git依赖


#代码提交

git pull    // 从remote拉取最新的代码

git add 文件名    //提交该文件代码到暂缓区

git add .    // 提交所有代码到暂缓区

git commit -m “”    // 生成一条提交记录

git commit -a -m “”     // 组合提交

git push     // 推送代码到远端

git push origin devel     // 推送本地代码到远端某个分支

#代码操作

git checkout 文件名      // 撤销该文件的修改

git checkout .         // 撤销所有文件修改

git reset 文件名    // 把该文件从暂缓区还原回来,通常用于不想提交某个文件

gi reset HEAD    // 回退所有内容到上一个版本

git reset HEAD a.py    // 回退a.py这个文件的版本到上一个版本

git reset --soft HEAD~3    // 向前回退到第3个版本

git reset 057d    // 回退到某个版本提交

git reset --soft 057d    // 回退到某次提交,并保留本地代码。通常用于合并commit

git reset --hard 057d  //回退到某次提交,不保留本地代码。强制回退,本地代码会被销毁

git revert HEAD    // 回退到上一次提交的状态,按照某一次的commit完全反向的进行一次commit

git revert 057d    // 撤销057d这次的提交记录

git stash [save message]    // 保存代码到缓存区,对当前的暂存区和工作区状态进行保存。

git stash list    // 列出所有保存的进度列表

git stash pop [--index] // 从缓存区把最近一次保存的代码提取到本地

git log --grep    // 在提交日志中查找关键字,查找某次提交基线

#分支相关

git branch test  创建本地分支

git checkout -b develop 创建本地分支develop并切换到该分支

git checkout -b develop 057d 创建本地分支基于某次提交

git push -d origin develop  删除远程分支develop

git branch -D develop 删除本地分支develop

git branch —all  查看全部分支(远程)

git pull -p  拉取分支

git merge develop  合并develop分支到当前分支

git rebase 也是合并分支但是合并后会自动把分支的提交按照时间线对齐, 显得提交历史很干净。但是一旦rebase出现冲突,你需要按照提交的次数不停的去解决冲突。git merge则只需要解决一次冲突。

git rebase --continue

git rebase --abort

git rebase的过程中,可能会出现冲突(conflict)。此时git会停止rebase并会让你去解决冲突,解决完冲突后,需要使用git add 命令去更新暂缓区,然后继续git rebase --continue,继续进行分支合并。

你也可以用git rebase --abort来终止rebase,并且分支会回到rebase开始前的状态。



#git命令缩写

git config --global alias.co checkout

git config --global alias.br branch

git config --global alias.ci commit

git config --global alias.st status

git config --global alias.cp cherry-pick


#常见问题

1. pull之前,本地代码可能会有冲突。此时需要先把改变的工作放到本地缓存区。通过git stash 的形式保存代码到缓存区,pull后再git stash pop 解决冲突后提交代码。

2.commit代码的时候出现冲突,可能需要merge代码,此时会出现两条提交记录,如果不想要,可以通过git reset --soft 的形式回退到remote ci,然后重新ci合并提交。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • git常用命令 GIT常用命令备忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章阅读 8,549评论 1 26
  • Git是目前最流行的版本管理系统,也是最先进的分布式版本控制系统(distributed version cont...
    pro648阅读 5,752评论 1 17
  • 本文系杂志约稿,不得转载,违者必究。 在从北京前往上海的接近两个小时的飞机上,有一组广告一直被循环不停地播放着,那...
    LostAbaddon阅读 614评论 5 12
  • 文/卡兰诺 简书是我去年十月份注册的,我在此一共发表过五十五篇,我去年进来后在简书发表三十多篇文章,没掀起浪。关注...
    卡兰诺阅读 997评论 6 9
  • 小时候阿爸时常跟我们说,孩子,你们一定要好好读书。 这时候,我总要顶嘴:“总要我们读,你咋不好好读的?听说,你小时...
    稻子未熟阅读 612评论 0 0