- 克隆与提交
###git init --bare sample.git
###git remote add origin
git clone 服务器git工程地址
设置当前工程的git用户及邮箱:
git config user.name xxxx
git config user.email xxxx@xxxxx
提交代码步骤(提交前必须先从服务器拉取最新改动 git pull origin branch2:branch1):
如果有增加文件 git add . (可以带文件路径)
提交所有改动:git commit -am “描述” (提交部分改动:git commit 文件 -m “描述”)
推送到服务器:git push origin master (推送主分支到服务器;若需要指定分支:git push origin branch1:branch2 (branch1本地分支名,branch2为远程分支名))
- 分支管理
查看所有分支(包括远程分支):git branch -a
切换分支:git checkout branch
创建本地分支:git checkout -b branch1 <==> git branch branch1;git checkout branch1 (branch1为分支名)
注意:在A分支上面创建分支,就会基于A分支的改动
删除本地分支:git branch -d branch1
创建远程分支:git push --set-upstream origin branch1 (branch1为远程分支名)
删除远程分支:git push origin --delete branch1
推送本地branch1分支到远程branch1
git push origin branch1:branch2(branch1本地分支名,branch2为远程分支名)
拉取远程分支到本地(当本地没有映射远程分支时):
采用此种方法建立的本地分支会和远程分支建立映射关系
git checkout -b branch1 origin/branch2(branch1本地分支名,branch2为远程分支名)
注意:报错后尝试git fetch后再拉取
拉取远程分支到本地(当本地有映射远程分支时):
git pull origin branch2:branch1(branch1本地分支名,branch2为远程分支名)
流程:A创建branch1===>A推送branch1到服务器branch1==>B拉取远程branch1到本地branch1
分支合并:
例如要将A分支的一个commit合并到B分支:
首先切换到A分支
git checkout A
git log
找出要合并的commit ID :
例如
0128660c08e325d410cb845616af355c0c19c6fe
然后切换到B分支上
git checkout B
git cherry-pick 0128660c08e325d410cb845616af355c0c19c6fe
然后就将A分支的某个commit合并到了B分支了
- 常用命令
查看当前状态:git status .或者git status . -uno
查看详细改动(可以带具体文件路径):git diff .
查看当前分支的日志:git log
如果有不需要跟踪的文件或者目录后需要删除:
git rm --cached filename 删除文件
git rm -r --cached filename 删除目录包括子目录
查看修改log:git reflog
回到某个节点:git reset commit的值
git reset缺省为git reset --soft
git reset –-soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可,代码在缓存区(适用于提交错误后需要修改再提交)
git reset -–hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容,撤销的commit中所包含的更改被冲掉
查看修改:
git show commitId
查看某次commit中具体某个文件的修改:
git show commitId fileName
列出某次提交的所有文件:
git show --pretty="format:" --name-only commitId
查看最近m次提交的文件列表:git log -m --stat
更新远程分支列表:
git remote update origin -p