git branch -r 查看远程所有分支
git branch -a查看远程和本地所有分支
git branch -d one-one 删除本地已合并的分支one-one
git branch -D one-one 删除本地未合并的分支one-one (好像也能删除已合并的分支,亲测)
git push origin --delete one-one 删除远程分支one-one
git remote -v 如果有多个远程仓库,此命令将全部列出
git remote add origin https://github.com/test/test.git 在https://github.com/test/test.git创建远程仓库,命名为origin
git add . 将工作时所有变化提到暂存区,包括文件内容修改及新文件,但不包括被删除的文件
git add -u 仅监控已经被add的文件即tracked file,会将被修改的文件提到暂存区。不会提交新文件
git add -A 以上两者的集合:即文件修改 添加新文件 被删除的文件
git commit https://blog.csdn.net/qianxuedegushi/article/details/80311358
git commit -m “message”
git commit -a -m “message”
git commit --amend
git log 查看版本库中的commit-d
git log -1 最近的commit-id
git log viewmontroller.m 查看某文件的提交历史 https://www.cnblogs.com/softidea/p/4920429.html
git fetch + git merge origin/master = git pull
git fetch 拉取远程仓库的变更到本地仓库
git merge origin/master 将远程的变更,合并到本地仓库的master分支
git push https://blog.csdn.net/qq_31411389/article/details/77042934
vim操作 https://www.cnblogs.com/crazylqy/p/5649860.html
code review 代码审查 https://blog.csdn.net/MessiGodLike/article/details/78422833
https://blog.csdn.net/wongdei123321/article/details/79012466
https://blog.csdn.net/MessiGodLike/article/details/78421049
git diff 不加参数,默认比较工作区和暂存区
git diff commit-id 比较工作区和指定commit-id的差异
git diff --cached 查看暂存区和最新本地版本库(本地库最近一次commit的内容)
git diff --cached filepath 查看某文件暂存区和最新本地版本库(本地库最近一次commit的内容
git diff --cached [
git diff [
git diff 打补丁
https://www.cnblogs.com/qianqiannian/p/6010219.html
git reset (https://blog.csdn.net/alphapersonality/article/details/80581730)
git reset HEAD 回退一个版本,且会将暂存区的内容 和 本地已提交的内容全部恢复到未暂存状态,不影响本地文件(未提交的也不影响)。 =》未暂存
git reset --soft HEAD 回退一个版本,不清空暂存区,将已提交的内容恢复到暂存区,不影响原来本地的文件(未提交的也不影响)。 =》暂存区
git reset --hard HEAD 回退一个版本,清空暂存区,将已提交的内容的版本恢复到本地,本地文件也将被恢复的版本代替 =》本地
git reset HEAD viewmontroller.m 将某文件回退到HEAD版 https://www.cnblogs.com/softidea/p/4920429.html
git reset --merge 取消合并
git rebase 衍合操作,功能与git merge相似;补丁 https://www.cnblogs.com/pinefantasy/articles/6287147.html
git revert 如果我们想恢复之前的某一版本(该版本不是merge类型),但是又想保留该目标版本后面的版本,记录下这整个版本变动流程,就可以用这种方法(与reset有部分相似) https://blog.csdn.net/yxlshk/article/details/79944535
git rm file_path = rm file(手动删除文件) + git add file_path 删除暂存区或分支上的文件,同时工作区也不用这个文件了
git rm --cached file_path 删除暂存区或分支上的文件,但 本地有需要使用,只是不希望被版本控制
https://www.jianshu.com/p/337aeafc2f40
https://www.cnblogs.com/everfight/p/git_rm_usage.html
git cherry-pick :例如,假设我们有个稳定版本的分支,叫v2.0,另外还有个开发版本的分支v3.0,我们不能直接把两个分支合并,这样会导致稳定版本混乱,但是又想增加一个v3.0中的功能到v2.0中,这里就可以使用cherry-pick
https://www.cnblogs.com/0201zcr/p/5752771.html
https://blog.csdn.net/qq_27062249/article/details/56671123
https://blog.csdn.net/fightfightfight/article/details/81039050
xcuserdata You can safely delete the xcuserdata directories. It basically contains personal settings like breakpoints, user interface layout, open files, automatic snapshots configuration and so on。 https://www.cnblogs.com/wfwenchao/p/4624025.html
清除缓存:git rm --cached
git rm --cached YHTestGit.xcodeproj/project.xcworkspace/xcuserdata/YHTestGit.xcuserdatad/UserInterfaceState.xcuserstate
UserInterfaceState.xcuserstate
git commit - -amend的使用:
刚提交到git的代码突然发现有bug,改完之后刚提交,又发现好像有个地方这样改改可能会更好些,于是又得提交一次。总是在一个需求上提交可能有时候描述内容都不知道怎么写了,而且总是提交会使提交记录异常难看。因此我们可以使用打补丁的方式进行提交,这就得提到一个命令:git commit - -amend
在amend的之前我们一般已经提交过一次代码了,用的是git commit -m"提交的描述";在第二次提交时我们用git commit - -amend,输完这个命令,则命令行会进入vim状态,这时我们可以选择重新编辑上次提交时的 "提交的描述",也可以选择不改,用上次的描述,无论改不改描述都不会产生新的change-id,在提交记录上都只展示一次提交记录。
注:vim命令:
1、ESC按键:使文件切到可编辑状态;
2、q!组合:不保存退出;
3、wq组合:保存退出
Sourcetree报错:
From https://gitee.com/denggun/TodayNews
* branch master -> FETCH_HEAD
error: The following untracked working tree files would be overwritten by merge:
TodayNews-master/News/.DS_Store
Please move or remove them before you merge.
Aborting
原因:是由于一些untracked working tree files引起的问题。所以只要解决了这些untracked的文件就能解决这个问题
解决方式:
打开SourceTree通过命令行,进入本地版本仓库目录下,直接执行
git clean -d -fx
即可。可能很多人都不明白-d,-fx到底是啥意思,其实git clean -d -fx表示:删除 一些 没有 git add 的 文件
git clean -d -fx "U17-master/U17/.DS_Store"
github总结(4)--关于git reset --hard这个命令的惨痛教训 https://blog.csdn.net/liangtaox8/article/details/98176617