用户配置
git config --global user.name [username]
git config --global user.email [email]
git config user.name [username]
git config user.email [email]
SSH命令
ssh-keygen -t rsa -C "youremail@example.com"
cat ~/.ssh/id_rsa.pub
GIT常见工作流程
项目开发中,大部分人常接触到的就是如下的工作流程 下面是项目开发一个新功能:
- clone项目到本地仓库
git clone <repository URL>
- checkout分支到工作区
git fetch --all
git checkout -b <branchname> origin/master
- 新增或修改好的内容add到暂存区
git add.
- 暂存区的内容commit到本地仓库
git commit -m "commit message"
- pull远程分支合并(防止后面push会和别人的冲突或覆盖别人的)
git pull
- push分支到远程
git push
- 合并主分支
git fetch --all
git merge origin/master
- gitlab提交合并请求(新功能测试通过后)
常见命令
远程仓库
git remote -v
git remote add origin git@github.com:XXXXXXX
git remote rm origin
git remote rename old_name new_name
git clone <repository URL>
暂存区
git status
git add [file1 name] [file2 name]
git add -A
git add .
git reset
本地仓库
git log
git commit -m "commit message"
- 提交跟踪过的文件到本地仓库(新创建文件不会被提交)
git commit -am "commit message"
git reset <option> <commit-sha>
option:
- hard:移动HEAD指针,工作区和暂存区重置到回退版本代码
- soft:移动HEAD指针,工作区和暂存区不变,回退的代码未提交状态
- mixed:移动HEAD指针,暂存区重置到回退版本代码
分支操作
git branch
git checkout <branchname>
git checkout -b <branchname>
git fetch --all
git checkout <remotebranch>
git checkout -b <branchname> origin/<remotebranch>
git push origin <branchname>
git merge <branchname>
git push origin -delete <branchname>
git pull
git fetch
git pull和git fetch区别:
- fetch能够直接更改远端跟踪分支,而pull无法直接对远程跟踪分支操作;
- fetch将数据拉取到本地仓库不会自动合并或修改当前的工作,而pull是从远程获取最新版本并merge到本地,会自动合并或修改当前的工作。
|