git基本流程
git init: 初始化一个git仓库,如果做错了,显示隐藏文件,删除.git目录
git status: 查看状态
git add 文件名: 添加某个文件
git add .(-A): 添加所有修改
git checkout 文件名 在add之前回退
git reset --hard 在add之后回退
git commit -m '写你的消息'
git log 查看提交历史 按字母 q(uit)退出
git reset --hard 版本号 在commit之后回退到指定的版本
git diff(erence) 可以查看没add的不同
git remote add origin 加仓库地址
git clone: 克隆远程仓库到本地
git branch 查看本地分支
git branch -r 查看远程分支
git branch -D 分支名 删除某个分支
git checkout 分支名: 切换到已有的分支
git checkout -b 分支名: 新建一个分支,并且切换到该分支
git push origin 远程分支名: 如果远程已经存在同名分支,则会有冲突或者合并,如果没有,就会创建一个远程分支,并且和当前分支是关联的
一、Git 用户信息配置
# 设置全局用户名和邮箱 $ git config --global user.name "xxx" $ git config --global user.email "xxx@xxx.com"
二、从远程仓库获取目录
# 在已经有远程仓库的情况下使用,比如新入职一家公司 ## 进入一个文件夹,用于放置clone下来的代码 $ cd test ## 把远程仓库代码clone下来 $ git clone https://github.com/xxxx/xxxx.git $ cd git_demo ##查看状态 $ git status ## 默认远程仓库名为origin On branch master Your branch is up-to-date with 'origin/master'. nothing to commit, working directory clean
三、修改和增加代码并推送
## 添加所有修改的文件,也可以git add xx.txt 指定某个文件 $ git add . ## 提交修改 $ git commit -m "update" ## 推送到远程仓库 $ git push
四、分支
# 一般情况下,当我们需要添加一个新功能的时候,是不能在主分支上直接修改的,这时,需要创建一个新的分支,等功能开发并测试完成之后,再合并到主分支。 #假设我们需要新建一个临时分支test来处理一个问题。 ## 新建一个test分支 $ git branch test ## 切换到test分支 $ git checkout test Switched to branch 'test' ## 查看分支,当前已经在test分支上面 $ git branch * test master ## 在当前分支上进行一些修改,把内容‘123123’添加到hello.txt文件中 $ echo "123123" >> hello.txt ## 添加并提交修改到本地 $ git add hello.txt $ git commit -m "add hello.txt" ## 推送到远程,因为现在远程还没有test分支,所以需要set-upstream ## 这样,在远程仓库就有了test分支,之后可以直接push $ git push --set-upstream origin test ## test解决后,把修改合并会master,并删除test分支 ## 切换到主分支 $ git checkout master Switched to branch 'master' Your branch is up to date with 'origin/master'. ## 把test分支的内容合并到主分支master $ git merge test Updating 2d0f8f9..bc9a5ca Fast-forward qwe | 1 + 1 file changed, 1 insertion(+) create mode 100644 qwe ##删除分支test $ git branch -d test Deleted branch wy (was bc9a5ca). ## push $ git push Total 0 (delta 0), reused 0 (delta 0) To https://github.com/xxxx/xxxx.git 2d0f8f9..bc9a5ca master -> master ## 删除远程分支 $ git push origin :test To https://github.com/xxxx/xxxx.git - [deleted] test
五、本地自建一个仓库
# 在没有远程仓库的情况下使用 ## 新建一个目录作为工作目录 $ mkdir demo $ cd demo ## 在本地初始化git仓库 $ git init #这时,我们已经创建了一个本地仓库,但是,一般我们和其他人共同开发一个项目,则需要添加一个远程仓库。现在假设我已经才github上面建立了一个叫demo的空仓库,现在需要将其添加到本地仓库。 ## 添加一个叫origin的远程仓库 $ git remote add origin https://github.com/xxxx/xxxx.git ## 添加个README吧 $ vim README.md $ git add README.md $ git commit -m "first commit with README" ## 推送到远程仓库,同时也可以push其他新增的文件到远程了 $ git push -u origin master
六、pull他人提交的代码
#在我们完成了某项功能的修改,需要push的远程的时候,协作者可能已经提交了他们的修改,这时,我们需要先把最新的提交拉取下来,加入我们的修改,再重新提交上去。 $ git push ## push被驳回了,因为有其他人已经提交了更新 ! [rejected] master -> master (fetch first) error: failed to push some refs to 'https://github.com/xxxx/xxxx.git' hint: Updates were rejected because the remote contains work that you do hint: not have locally. This is usually caused by another repository pushing hint: to the same ref. You may want to first integrate the remote changes hint: (e.g., 'git pull ...') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details. ## 拉取远程提交内容并合并到当前工作区 $ git pull ## 重新push到远程 $ git push