首次提交
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/xxx/test.git
git push -u origin master
// 冲突解决
情景:在GitHub上创建一个仓库,并添加了readme,在本地新建项目,这时想提交代码。
初始化本地仓库
git init
git config user.name "xxx"
git config user.email "xxx"
git add .
git commit -m
git remote add origin https://github.com/huang-weilong/test.git
git pull origin master --allow-unrelated-histories
然后手动解决冲突文件
git add .
git commit -m
git push origin master
// 以镜像推送的方式上传代码到新的仓库地址
git push --mirror http://...(目标仓库地址)
// 修改git的url
git remote set-url origin url
// 合并上一次的提交,适合小改动
git commit --amend --no-edit
// 修改上一次提交的名字
git commit --amend --author="username <useremail>" --no-edit
git push --force-with-lease origin master
// 删除远程仓库的文件,但不删除本地的
git rm -r --cached .idea/
撤销上一次的commit ,未push的
git reset --soft HEAD~
远程仓库更新了,如何更新本地代码?
git remote -v
查看远程仓库
git fetch origin master:temp
在本地新建一个temp分支,并将远程origin仓库的master分支代码下载到本地temp分支
git diff temp
比较本地代码与刚刚从远程下载的代码的区别
git merge temp
对比区别没问题后进行代码合并
git branch -d temp
如果temp分支不想保留,可以删除
分支
查看分支: git branch
查看所有分支: git branch --all
创建本地分支: git branch dev
发布dev分支: git push origin dev:dev
(这样远程仓库也有dev分支了)
在dev分支开发代码:git checkout dev
切换到dev分支
开发完后切回master分支 git checkout master
将dev和master合并: git merge dev
推送更新:git push
删除远程分支: git push origin -d dev
删除本地分支: git branch -d dev
git stash
将所有未提交的修改(工作区和暂存区)保存至堆栈中,用于后续恢复当前工作目录
git stash save
作用等同于git stash
,区别是可以加一些注释
git stash list
查看当前stash中的内容
git stash pop
将当前stash中的内容弹出,并应用到当前分支对应的工作目录上。
注:该命令将堆栈中最近保存的内容删除(栈是先进后出)
git stash apply
将堆栈中的内容应用到当前目录,不同于git stash pop,该命令不会将内容从堆栈中删除,也就说该命令能够将堆栈的内容多次应用到工作目录中,适应于多个分支的情况。
堆栈中的内容并没有删除。
可以使用git stash apply + stash名字(如stash@{1})指定恢复哪个stash到当前的工作目录。
git stash clear
清除堆栈中的所有 内容
git stash show
查看堆栈中最新保存的stash和当前目录的差异
git config --global --unset http.proxy
取消代理
git config -l
查看配置信息
git remote -v
显示所有远程仓库
git remote set-url xxxxx(address)
设置远程仓库地址
git cherry-pick
的使用
将master分支开发了新功能(hash1,hash2,hash3
),需要将最近几次的commit也给v2分支。
切换到v2分支git checkout v2
使用git cherry-pick hash1
,git cherry-pick hash2
,git cherry-pick hash3
,
确认无误后推送到远程分支git push origin v2
如果冲突了,解决完冲突,将修改的文件添加到暂存区git add .
,
再让cherry-pick继续执行git cherry-pick --continue
如果冲突了,想放弃合并,git cherry-pick --abort
,回到操作前的样子
撤销commit 未push
git reset hash