Command line instructions
Git global setup
git config --global user.name "Zhou Tong" git config --global user.email "zhoutong@patsnap.com"
Create a new repository
git clone http://git.patsnap.com/tong.zhou/test-local.git
cd test-local touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
http://git.patsnap.com/tong.zhou/test-local.git
cd test-local touch README.md
git add README.md
git commit -m "add README"
git push -u origin master
Existing folder or Git repository
cd existing_folder
git init
git remote add origin http://git.patsnap.com/tong.zhou/test-local.git (使用http会需要帐号密码)
git add . git commit git pull origin master(解决冲突) git push -u origin master
注:git remote add origin git@git.patsnap.com:tong.zhou/test-local.git (使用ssh key)
cd /home/toryzhou/GitOpenshift/jbossews
git add webapps/job.war git status
git commit -m "add job.war"
git push git修改远程库 https://git.oschina.net/toryzhou/job.git cd $project_path
git remote rm origin
git remote add origin https://dinnywu@bitbucket.org/dinnywu/turingbook-load-balance.git
git checkout master git branch --set-upstream master origin/master git pull
用git branch -a
命令列出本地分支和远程分支;
这里的远程分支指的是本地保存的远程跟踪分支;
可以通过git fetch
将本地远程跟踪分支进行更新,与远程分支保持一致;
创建分支
git branch release-1.2.0
git branch
git checkout release-1.2.0
git push origin release-1.2.0
//删除本地分支并推到远程 git branch -D release-1.5.0 git push origin :br (origin 后面有空格)
//删除远程分支
git push origin --delete remote_branch
git操作搞定Github中fork的项目与原作者同步
git checkout develop
git remote add common-spring-boot git@git.patsnap.com:platform/common-spring-boot.git
git fetch common-spring-boot
git branch -a
git merge common-spring-boot/develop //git新创建分支
创建分支: $ git branch mybranch
切换分支: $ git checkout mybranch
创建并切换分支: $ git checkout -b mybranch
合并分支: $ merge
当.gitignore不生效时
git rm -r --cached .
git add .
git commit -m 'update .gitignore' Git撤销git commit 但是未git push的修改
1. 找到上次Git commit的 id git log 找到你想撤销的commit_id
2. git reset --hard commit_id 完成撤销,同时将代码恢复到前一commit_id 对应的版本。
3. git reset commit_id 完成Commit命令的撤销,但是不对代码修改进行撤销,可以直接通过git commit 重新提交对本地代码的修改。
合并commit
git log
git rebase -i 415be 修改要合并的分支为squash 或 s,留一个pick,保存退出 添加注释,保存退出 再次commit,
如果有冲突可以选择merge或则rebase(未验证)
如果过程中有操作失误可以选择 git rebase --abort 来恢复操作
一条命令搞定
git rebase [startpoint] [endpoint] --onto [branchName]
如果第一个命令操作后,当前修改不在任何分支
git rebase -i d5e61 821b2d
git checkout develop
git push
撤销操作 git checkout 【行merge操作时所在的分支】 git log git reset --hard 【merge前的版本号】
如果已经通过git push提交了,看你们公司用的什么git服务器了,一般用户想修改的话需要相关的权限,找管理员了;如果已经有其他开发人员基于你的提交进行了修改并提交的话,那就更麻烦了,后面的所有提交都要重新做一遍;
如果还没有push到服务器,只是本地进行了commit,并且没有进行新的commit,只需要git commit --amend;如果进行了新的commit,只需要git reset --soft xxx (xxx有问题那次提交的commit id),然后在进行git commit就行,不过所有后面的提交都成为了一次提交;如果想保持每次提交独立的话,使用git checkout -b tmp ^xxx
git cherry-pick xxx
git commit --amend
git cherry-pick <依次后面的提交id>
参与github项目,可以同时更新作者代码,并修改自己代码步骤
1. 先clone作者代码到本地
2. 在github上面fork作者项目
3. 在本地添加远程仓库 git remote add symphony-tory https://github.com/ToryZhou/symphony.git
4. git fetch symphony-tory
5. git branch develop-tory
6. git checkout develop-tory (可能需要,后期验证修改)
7. 关联本地和远程分支 git branch --set-upstream 2.6.0-dev-tory symphony-tory/2.6.0-dev-tory (没有这步在push时需要选择)
8. 可以进行commit 和push了
9. 在github 的个人分支上pull request,就可以请求merge到作者的指定分支
本地新建项目推到github
在项目里面加上.gitignore文件
直接 vcs -> import into version control -> share github
本地新建项目推到gitee
在项目vcs里面新建git 仓库
commit file
push的时候定义远程路径,
如果push 被 reject掉,先pull同步远端文件,在pull时候点击右侧圆圈刷新分支,勾选分支
pull过后再进行push操作,就可以同步远程库了
git reset --hard 把pull的冲突回滚掉
git reset --soft HEAD^ 撤销最后一次提交
git reflog 查看版本号
git reset --hard 版本号 回滚到所在版本, 这个方法可以撤销merge操作, 撤销pull操作
git fetch origin-min fetch新的远端仓库, 可以拉取里面的代码
如何将git的master分支整个替换为另外一个分支
如果分支合并时出现了冲突,而你的remote仓库是github或者bitbucket,那么只能强上了
git branch -m master old-master
git branch -m seotweaks master
git push -f origin master