git config --global user.name "Your Name"
git config --global user.email "email@example.com"
git init用来把目录变成git可以管理的仓库
ls -ah可以看见隐藏文件
git add <file> 用来把文件添加到仓库,可一次添加多个文件
git commit -m "描述" 用来把文件提交到仓库
git status用来查看仓库的当前状态
git checkout -b feature-hu develop # 从develop分支新建并检出feature分支
# 这里可以进行一些功能开发,并不断的add和commit
# 切换回develop分支
git pull origin develop # 更新远端代码,看develop分支是否有更新(无更新)
git checkout feature-hu # 切换回feature分支
git rebase develop # 合并develop分支到feature分支,并解决冲突(无冲突)
git checkout develop # 切换回develop分支
git merge --no-ff feature-hu # 合并feature分支到develop分支
git push origin develop # 推送develop分支到远端
git checkout -b feature-zz develop # 从develop分支新建并检出feature分支
# 这里可以进行一些功能开发,并不断的add和commit
git checkout develop # 切换回develop分支
git pull origin develop # 更新远端代码,看develop分支是否有更新(有更新)
git checkout feature-hu # 切换回feature分支
git rebase develop # 合并develop分支到feature分支,并解决冲突(有冲突)
# 这里需要进行冲突解决
git add . # 解决完冲突之后执行add操作
git rebase --continue # 继续刚才的rebase操作
git checkout develop # 切换回develop分支
git merge --no-ff feature-zz # 合并feature分支到develop分支(无冲突)
git push origin develop # 推送develop分支到远端
echo "# xiangmu" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:GitHuUser/xiangmu.git
git push -u origin master
git diff用来查看文件做了什么修改
git log --pretty=oneline命令显示从最近到最远的提交日志
git reset --hard HEAD^
git reflog用来记录你的每一次命令
git reset --hard commit_id
git diff HEAD -- <file>用来查看工作区和版本库最新版本的区别
git checkout -- file用来丢弃工作区的修改
git reset HEAD file用来把暂存区的修改撤销掉,重新放回工作区
git rm从版本库中删除文件
git checkout -- file从版本库中恢复删除的文件
git checkout是用版本库里的版本代替工作区的版本
git remote add origin git@github.com:GitHuUser/Git_repository.git
git remote add origin git@server-name:path/repo-name.git关联一个远程库
git push -u origin master第一次推送master分支的所有内容
git push origin master第一次推送之后就可以使用该命令推送最新修改
git clone git@github.com:GitHuUser/gitskills.git
git checkout -b dev创建一个dev的分支 加上-b参数表示创建并切换相当于git branch dev和git checkout dev两条命令
git branch命令来查看分支
git branch <name>创建分支
git checkout <name>切换分支
git merge dev把dev分支的工作成果合并到当前分支上
git branch -d <name>删除分支
git log --graph命令可以看到分支合并图
git log --graph --pretty=oneline --abbrev-commit
git merge --no-ff -m "merge with no-ff" dev --no-ff参数表示禁用Fast forward
git stash把当前工作现场"储存"起来,等以后恢复现场后继续工作
git stash apply恢复工作现场,但是stash内容不删除,可以用git stash drop删除,或者直接用git stash pop
git stash list查看stash内容
git branch -D dev可以强制删除分支
git checkout -b dev origin/dev创建远程origin的dev分支到本地
====================***********************====================
====================***********************====================
====================***********************====================
多人协作的工作模式通常是这样:
首先,可以试图用git push origin branch-name -f推送自己的修改;
如果推送失败,则因为远程分支比你的本地更新,需要先用git pull试图合并;
如果合并有冲突,则解决冲突,并在本地提交;
没有冲突或者解决掉冲突后,再用git push origin branch-name推送就能成功!
如果git pull提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream-to=origin/远程分支的名字 本地分支的名字
这就是多人协作的工作模式,一旦熟悉了,就非常简单
====================***********************====================
====================***********************====================
====================***********************====================
git remote -v使用查看远程库信息
git push origin branch-name从本地推送分支,如果推送失败在先用git pull抓取远程的新提交
git checkout -b branch-name origin/branch-name在本地创建和远程分支对应的分支,名字最好一致
git branch --set-upstream (或者--track或者--set-upstream-to) branch-name origin/branch-name
git pull从远程抓取分支,如果有冲突,先处理冲突
git tag vx.x commit_id
git tag -a v0.1 -m "version 0.1 released" commit_id创建带有说明的标签,用-a指定标签名,-m指定说明文字,指定标签信息
git tag -s v0.2 -m "signed version 0.2 released" fec145a通过-s用私钥签名一个标签,用PGP签名标签
git tag查看所有标签
git tag -d v0.1删除标签
git push origin <tagname>推送某个标签到远程
git push origin --tags一次性推送全部尚未推送到远程的本地标签
git tag -d <tagname>可以删除一个本地标签
git push origin :refs/tags/<tagname>可以删除一个远程标签