下面是我在开发中常用的GIT命令
1. 配置GIT
git config --global --add user.email <email>
git config --global --add user.name <username>
2. 创建新的项目
git init
git add
git commit -a -m "xxx"
git remote add origin <我的远程仓库地址>
git push origin master
3. 从远程仓库获取最新代码至本地
git fetch origin master
git log -p master..origin/master
git merge origin/master
或
git pull origin master
我一般都直接用git pull
4. tag 操作
添加tag
git tag -a <tagname> -m "comments"
删除tag
git tag -d <tagname>
默认git push时,tag是不会上传的,push时加上--tag可以把tag也上传
git push origin master --tag
删除远程tag:
git push --delete origin <tagname>
为过去的commit加tag:
有时候我需要为过去的commit加上tag, 首先列出过去的commits:
$ git log --pretty=oneline
d9c9a1e3bb0cf84cdead31be717756ae057a980a Configuration classes added
f9154d4690a63c58b8ea91f2b7a0f74a98280c67 Remove unused classes, update PacketUti
a4d88c3095d514f8a56e4a7d107956cb14debc20 Update README.md
594f89000e3efd1f45685271647338b265c17cd0 Create README.md
697c3445b110f286a5407700dc87c4a135e2fb43 Added state machine
97c2be9cc2c686bae310aa898b3af766574cc4ed add apache license statement
b5c34f5ac760c023e0d2ac6db8e17ae7a5f26553 Asynchronous RPC
7b113920126ae92ff77b727cfacbaf8b56df5a3a server tps count
943da57a8f0e39c82d36a1f5cdff6c734ea8c6f7 Merge remote-tracking branch 'origin/fo
b0ac2805818c7c12ac4b16838883f6a3ad4b162d update
db4a09a20aad6898ef5c5313a1408a0cf8013e2f updates
a663d2c4a53a9349eb361d2a75a77d6369bee497 change rpc client to use queue
d46ed50ad0c263dc214fa9c51d18470f6ebd391c blocking hash map updates to resolve a
99bc1bc9d3b4505675577b45e59afd90bba44a88 added blocking hashmap and bounded bloc
f9154d4690a63c58b8ea91f2b7a0f74a98280c67 Remove unused classes, update PacketUti
a4d88c3095d514f8a56e4a7d107956cb14debc20 Update README.md
594f89000e3efd1f45685271647338b265c17cd0 Create README.md
697c3445b110f286a5407700dc87c4a135e2fb43 Added state machine
97c2be9cc2c686bae310aa898b3af766574cc4ed add apache license statement
b5c34f5ac760c023e0d2ac6db8e17ae7a5f26553 Asynchronous RPC
7b113920126ae92ff77b727cfacbaf8b56df5a3a server tps count
943da57a8f0e39c82d36a1f5cdff6c734ea8c6f7 Merge remote-tracking branch 'origin/fo
b0ac2805818c7c12ac4b16838883f6a3ad4b162d update
db4a09a20aad6898ef5c5313a1408a0cf8013e2f updates
a663d2c4a53a9349eb361d2a75a77d6369bee497 change rpc client to use queue
d46ed50ad0c263dc214fa9c51d18470f6ebd391c blocking hash map updates to resolve a
99bc1bc9d3b4505675577b45e59afd90bba44a88 added blocking hashmap and bounded bloc
然后选择需要加tag的commit的编码,用下面命令给它加上tag:
$ git tag -a v1.2 b5c34f5ac760c023e0d2ac6db8e17ae7a5f26553 -m "comments"
5. 分支操作
查看分支
git branch
git branch -r
创建分支
git checkout -b newbranch
把分支合并到master:
git checkout master
git merge <other branch
git push origin master
切换当前分支
git checkout branch
重命名分支:switch_to_mysql -> mysql
git branch -m switch_to_mysql mysql
git push origin --delete switch_to_mysql
git push origin mysql
从分支B中删除最后一个commit
git checkout B
git reset --hard HEAD~1
git push origin HEAD --force
获取某分支最新代码到本地仓库
git fetch origin <branch>
git log -p <branch> origin/<branch>