Git常用基本命令
Workspace:工作区 Index / Stage:暂存区
Repository:仓库区(本地仓库) Origin:远程仓库
1. 新建代码库
# 下载一个项目和它的整个代码历史
git clone url
# 下载一个项目某个分支代码历史
git clone -b branch-name url
2. 配置
# 显示当前的Git配置
git config --list
# 设置提交代码时的用户信息
git config [--global] user.name "name"
git config [--global] user.email "email"
3. 增加到暂存区
Git Version 1. x :
# 将当前目录下所有新增和修改存至缓存区,但不包括删除
git add .
# 将目录下所有修改和删除存至缓存区,但不包括新增、
git add -u(git add --update)
# 缓存所有改动(是上面两个功能的合集)
git add -A (git add --all)
4. 代码提交/撤销
提交:
# 提交暂存区到仓库区
git commit -m "提交的描述信息"
撤销提交:
# 撤销后 不会清除提交前的暂存区和工作区(上一次提交/要撤销的commit_id)
git reset --soft HEAD^/commit_id
# 撤销后 清空了提交前的暂存区但是工作区存在
git reset HEAD^/commit_id
# 撤销后 清空了提交前的工作区和暂存区,所有的内容都回到了上一commit的状态。
git reset --hard HEAD^/commit_id
# 强制撤销已经push到远端的commit(看不到这个历史痕迹)
git reset --soft HEAD^/commit_id
git push origin <分支名> --force
*若在你的commitX 后别人提交了新的commit Y,然后你强制撤销推送,那位仁兄的commit Y也跟着一起消失了。
#功能分支代码切回主分支 并保留历史线路
git merge --no-ff xxx
5. 分支
# 列出所有本地分支
git branch
# 新建一个feature-x分支
git branch feature-x(仍停留在当前分支)
git checkout -b feature-x(已经切换到该分支)
# 合并指定分支(feature-x)到当前分支
git merge feature-x(历史提交记录会留下合并痕迹)
git rebase feature-x (历史提交记录不会留下合并痕迹)
# 删除分支feature-x
git branch -d feature-x
# 删除远程分支feature-x
git push origin --delete feature-x
# 批量删除本地分支
这个命令会将所有本地分支写入到branches.txt文件中,如果某些分支正在开发或者测试中,请将其从branches.txt剔除,以免勿删
git branch | grep -v '\*' > branches.txt
紧接着,执行如下命令如下。这个命令会将branches.txt中列出的分支删除并打印:
cat branches.txt | xargs git branch -D
6. 查看信息
# 显示有变更的文件
git status
# 显示当前分支的版本历史
git log
7. 远程同步
# 推送commit到远程分支
git push
# 拉取本地没有的远程分支到本地
git checkout -b 本地分支名 origin/远程分支名
# 上传本地指定分支(feature-x)到远程仓库(在远程仓库生成该分支上游分支)
git push origin feature-x(git push --set-upstream origin feature-x)
# 推送所有分支到远程仓库
git push origin --all
8、修改远程
git remote set-url origin url
先删后加
git remote rm origin
git remote add origin git@github.com:sheng/demo.git
修改config文件
如果你的项目有加入版本控制,那可以到项目根目录下,查看隐藏文件夹, 发现.git文件夹,找到其中的config文件,就可以修改其中的git remote origin地址了。