git快捷入门 常用命令
最近写代码使用了git,感觉写代码舒心了很多。特别是一个功能没有完成的时候,又想测试另外一个功能,这时候可以从从git里面提取以前能够运行的代码,建立分支写新功能,写完之后将两者合并,两个开发进度毫不影响,实在是太爽了。事实上,使用git就像使用一个简单可靠的魔法。
只要你commit了,合理地建立分支了,就无需担心代码会丢失和混乱。
有人建了一个网站来推广Git,致敬:Why Git is Better than X。
"我打印了《Pro Git》中文版,其中最触动我的是第三章开头的一句话:“Git鼓励在工作流程中频繁使用分支与合并,哪怕一天之内进行许多次都没有关系。理解分支的概念并熟练运用后,你才会意识到为什么Git是一个如此强大而独特的工具,并从此真正改变你的开发方式。”
开始使用git
git中文乱码问题解决:http://blog.licess.org/msysgit-chinese/
经常使用的命令:
git init (cd到你的工程目录里面,再使用这个命令(第一次使用就行了))
git add *.cpp *.h (你修改了文件 或者第一次git init接着使用这个命令 使用IDE的最好也把一些配置文件加进去)
-------------如果你add了,但想取消怎办?千万不要使用git remove / git rm,它将会删除文件,请使用git reset 文件名,或者使用Git rm --cached file(这个好点,因为它只是把文件状态变成untracked,而没有修改文件)
git diff (当你了修改文件并保存了,使用这个命令观察下)
git status (自己使用观察下)
git commit -m "your message"
git log -p (当你修改了文件,再使用git commit -m "XXX"时候,再用这个命令看看)
git log (同上)
git branch test 7bdd67f9e423857a905216fa71229907c85c5efe 从7bdd67f9e423857a905216fa71229907c85c5efe中新建test分支(你的7bdd67f9e423857a905216fa71229907c85c5efe是完好的,可运行的,你想从这里开始写你的新功能,这个数字是怎样来的呢,你可以从git
log中查到)
git commit --amend -m"your message" (你保存得过于频繁,可将此次的commit和上一次commit合并)
git checkout test 切换到test分支
git branch 查看分支
git branch -D test 删除test分支
git merge test 把test分支合并到当前分支上 (合并之后 git会在发生冲突的文件上标出冲突 自己打开这些文件手工解决冲突 如果不解决不能commit)
git还有一些打补丁、删除commit、搜索功能等
一些注意点
git checkout master file_name //放弃当前master分支对文件file_name的修改 即把没有commit的修改丢弃返回最近的一次commit 慎用 不可恢复(我觉得最好不用)
git checkout commit_id file_name //取文件file_name的 在commit_id是的版本。 commit_id为 git commit 时的sha值。
最好要经常commit才行!!!!不过commit的应该是一个完整的版本,否则会造成混乱也说不定!!!!
注意:文件修改之后commit之前应该add暂存修改 否则会无法commit
取得具体帮助 如:git commit -h 这个很重要
要想使用恢复功能 必须commit才行
新建立分支并用git checkout在不同分支切换的时候 修改和暂存在所有的分支都能看得到 但是在某个分支commit之后,这个修改就是这个分支的了 切换到其他分支时会丢失
尽量保持一个好的branch ,方便测试等
1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge
2. git pull:相当于是从远程获取最新版本并merge到本地
当你在干同一个事情的时候,可以使用下边的命令合并最近的一次提交,这样就不会出现多个commit了
git commit --amend
git commit --amend XXX 可以修改以前的commit message