本地操作
使用git 之前 可以先配置下客户端的用户名和邮箱
qideMac-mini:~ qi $ git config --global user.name “longge”
qideMac-mini:~ qi $ git config --global user.email “longge_li0123@163.com”
1. git init初始化一个项目
2. vi创建一个文件vi mytest.txt
3. git status获取当前git 项目的 状态信息
4.git add mytest.txt 提交之前先add (add到暂存区)
5. git commit -m “log信息”提交到提交区
git diff master.txt工作区和暂存区 是否一样
撤销回退
git checkout -- master.txt 撤销回退修改(从修改之后 撤销工作区修改之前的状态), 一定要确定不要了
如果add 了怎么回退呢?下面add 之后的撤销
git reset HEAD 从 暂存区撤销 add 回到修改的状态
git checkout -- master.txt 工作区的从修改状态 撤销 到修改之前
git diff --cached 历史提交和暂存区 是否一样
git commit -m ‘second'
git config --local --add alias.lol "log --oneline --decorate --all --graph"
git lol
git commit -am "third"直接从工作区到提交区
git show 888803d显示具体提交的详细信息
git checkout -- master.txt撤销回退 修改,一定要小心确定不要了
如果add 了怎么回退呢?下面
git reset HEAD从 暂存区回退
git reset HEAD --hard 直接回退到工作区把工作区的也回退了
分支
可以合并到主分支
git branch 查看分支
git branch
qiadeMac-mini:longgeGit qia$ git branch
master
* test
qideMac-mini:longgeGit qianfeng$
git branch test 切换分支
分支 如果修改好了 要合并 那么就 切换到主分支 然后 git merge test 合并分支到主分支
git checkout -b test2 6e20617 在历史版本切换 和 创建 分支
lzxuan:lzxGit lzxuan$ git lol
*edc94a6 (HEAD ->test2) commit on test2
| *8dd27de (test,master) commit on test
| *888803d third
|/
*6e20617 second
*eb55643 init commit
切换主分支 在合并 (但是下面有冲突)
lzxuan:lzxGit lzxuan$ git merge test2
Auto-merging master.txt
CONFLICT (content): Merge conflict in master.txt
Automatic merge failed; fix conflicts and then commit the result.
lzxuan:lzxGit lzxuan$ cat master.txt
Initual commit on master
second line
<<<<<<< HEAD
third
first commit on test
=======
test2 changed
>>>>>>> test2
解决冲突之后 git add master.txt 仍然用add
在提交
git commit -m "fix conflicts"
查看:git status
qideMac-mini:longgeGit qi$ git lol
* efa6c9b (HEAD,master) fix conflicts
|\
| *81183e7 (text) first commit on text
*| 9d934b4 fouth commit
*| f5353bd thrid commit
|/
*9fc2750 second commit
*c8fbe19 init first commit
qideMac-mini:longgeGit qi$
git branch -d test删除 分支
====
远程
撤销跟踪
$ git rm --cached iLedger.xcodeproj/project.xcworkspace/xcuserdata/Alex.xcuserdatad/UserInterfaceState.xcuserstate
$ git commit -m "Removed the stupid strange file that shouldn't be tracked"
$ git push